3

我想要的是轻松地将每列的一个数字乘以另一个数字,然后在 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)会这样做?然后我可以在中间插入列,范围仍然有效。

4

2 回答 2

4

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

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

单击此处了解有关此功能的更多信息。

于 2014-12-11T11:07:25.110 回答
2

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

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

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

你可以在arrayformula 这里阅读。

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

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

包络sum()函数将由 生成的数组的值相加,arrayformula13这种情况下。

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

于 2013-11-28T22:10:23.110 回答