Google电子表格中是否有多重添加公式?

时间:2013-10-11 09:58:37

标签: google-sheets formula spreadsheet

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

2 个答案:

答案 0 :(得分:4)

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

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

单击here以获取有关此功能的更多信息。

答案 1 :(得分:1)

您可以在不需要专用功能的情况下完成此任务。

E3中,尝试此操作(并将其复制到其余行):

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

您可以阅读arrayformula here

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

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

包络sum()函数会累加arrayformula生成的数组的值,在这种情况下为13

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