【问题标题】:Is there a multiple-and-add formula in Google's spreadsheet?谷歌的电子表格中有多重加法公式吗?
【发布时间】:2013-10-11 09:58:37
【问题描述】:

我想要的是轻松地将每列的一个数字乘以另一个数字,然后在 Google 表格的末尾将它们相加。例如:

User | Points 1 | Points 2 | Points 3 | Total
     |     5    |     1    |     4    |
-----+----------+----------+----------+------
Jane |        2 |        3 |        0 |   13 (2*5 + 3*1 + 0*4)
John |        1 |       11 |        4 |   32 (1*5 + 11*1 + 4*4)

所以很容易为总数制定这个公式:

= B3*$B$2 + C3*$C$2 + D3*$D$2

问题是我经常需要插入额外的列,甚至删除一些列。所以我必须弄乱所有​​的公式。这很痛苦……我们有许多带有这些公式的电子表格。我希望有一个像SUM(B3:D3) 这样的公式,我可以在其中指定一个范围。有没有像MULTIPLY_AND_SUM(B2:D2, B3:D3) 这样的东西可以做到这一点?然后我可以在中间插入列,范围仍然有效。

【问题讨论】:

    标签: google-sheets formula spreadsheet


    【解决方案1】:

    Google 表格中有一个内置函数可以满足您的需求:SUMPRODUCT。 在您的示例中,公式为:

    =sumproduct(B$2:D$2,B3:D3)
    

    点击here了解更多关于此功能的信息。

    【讨论】:

      【解决方案2】:

      您可以在不需要特殊功能的情况下完成此操作。

      E3 中,试试这个(并将其复制到你的其余行):

      =sum(arrayformula(B3:D3*B$2:D$2))
      

      你可以阅读arrayformulahere

      只要在BD 之间引入新列,这个公式就会自动调整。如果您在该范围之外添加新列,则需要进行编辑(并剪切和粘贴)。

      就其自身而言,arrayformula(B3:D3*B$2:D$2) 依次对B3:D3 中的每个值进行运算,并将其乘以B$2:D$2 中的相应值。 (注意使用绝对引用来“锁定”到第 2 行。)在这种情况下,结果是三个值 [10,3,0],水平排列在三行中,因为这与范围的尺寸相匹配。

      封装的sum() 函数将arrayformula 生成的数组的值相加,在本例中为13

      当您将该公式复制到其他行时,新行的相对范围引用会更新。

      【讨论】:

      • 正是我想要的!
      猜你喜欢
      • 2021-08-05
      • 2015-10-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多