2013-10-11 93 views
3

我想要的是轻松地将每个列的数字乘以另一个数字,并在Google表格的末尾添加它们。例如: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)这样做?然后我可以在中间插入列,范围仍然可以工作。

回答

1

您可以在不需要特殊功能的情况下完成该任务。

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

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

+1

正是我在找的东西! –

4

在Google表格中有一个内置函数,它完全符合您的要求:SUMPRODUCT。 在您的示例公式将是:

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

点击here有关此功能的更多信息。

+0

正是我在找什么,谢谢! –