在 Excel 2007 中,我有一个如下排列的工作表:
A B C
1 x 2 15
2 x 3 45
3 x 4 46
4 x 1 7
5 x 2 85
6 x 1 14
7 x 1 9
8 x 3 36
9 x 1 5
10
11 C Total: 262
12 C Total where B > 1: 227
C11
是常规的SUM
:
=SUM(C$1:C9)
C12
是仅当列中的值大于 1 时才SUMIF
计算该列中的值的函数:C
B
=SUMIF(B$1:B9, ">1", C$1:C9)
这是我的问题:我在行处插入一行10
,并添加其他数据:
9 x 1 5
10 y 1 17
11
12 C Total: 265
13 C Total where B > 1: 227
在输入数据后C10
,Excel 会自动更新公式中的范围SUM
,但不是这SUMIF
:
=SUM(C$1:C10)
=SUMIF(B$1:B9, ">1", C$1:C9)
我通常一次更新此工作表的一行,因此我浪费了大量的时间来调整公式中的范围。
SUMIF
Excel 不会像对 那样自动更新 中的范围,这有什么原因吗SUM
? 可以这样做吗,或者有解决此行为的解决方法吗?
答案1
你所观察到的SUM
是 Excel 的自动公式扩展实际操作 – Excel 在添加行或列时执行的调整公式引用的神奇操作。 AsSUM
和SUMIF
非常相似(它们都能够将自己限制在填充了数据的区域的一部分,例如 – 请参阅这篇 MSDN 文章),人们理所当然地认为两者都是公式扩展的目标。但事实SUMIF
并非如此,或者至少在 Office 2007 和 Office:mac 2011 上并非如此,我称之为错误行为(从技术上讲,它可能不是一个错误)。恐怕你无法改变这一点。
答案2
您必须将数据制成表格。
ExcelIsFun 上有一段关于此的视频YouTube。