通常我只会像这样计算每行的差异:=B1-A1
然后我会像这样将该列的值相加=SUM(C1:C10)
并得到我想要的值。
我不想要C列。可以立即计算吗?
例如我尝试过:(=SUM((B1-A1):(B10-A10))
但没有效果)
通常我可以在文档的某个地方找到答案,但是我的数学英语词汇有点生疏,而且通过德语文档我找不到我想要的东西。
我知道我可以手动将 10 个值放入总和中。但这样做的扩展性并不好,我希望能够只更改公式中的几个值,而不是添加 1000 个值。
答案1
对于这种情况,应该采取以下措施:
=SUM(B1:B10) - SUM(A1:A10)
答案2
如果您想依次计算每个值,将其作为正数求值,然后计算出相加的结果,那么最好的办法是使用数组公式。
这些不是通过在末尾按 ENTER 来输入的,而是按 CTRL+SHIFT+ENTER。完成后,您会注意到两边都有一对括号 ( { }
)。
注意 - 您必须使用此方法,您不能在
=sum ( abs(b1:b10 - a1:a10) )
显然,如果这样更适合您的需要,您可以用平均值替换总和。
答案3
Google 表格
如果任何一个单元格可能为空,其他线程会建议使用 SumProduct。例如
=SumProduct(--(b1:b10<>“”),(b1:b10-a1:a10))
第一个参数提供一个 TRUE/FALSE 数组,表示 B 范围内的值是否为空,然后用于--
将这些布尔值转换为 1 或 0。
另一个论点是所需的差异。
然后将 SumProduct 将这两个数组相乘,得出两列之间的总差值(不包括 B 范围内的缺失值)。
Excel
Excel 2010 对第二个参数抛出了 #VALUE! 错误。另一种方法是:
=(Sum(b1:b10)-SumProduct(--(b1:b10<>“”),a1:a10))/Count(b1:b10)
这种方法的唯一警告是,如果 B 范围内的所有单元格都为空,则会导致 #DIV/0!。