如果 A 列中的相应单元格在 (10; 20] 中,我正在尝试对 C2:C2000 中的所有单元格求和,但我遇到了条件问题。
我试过类似的东西=SUMIF(A2:A2000, AND(">10","<=20"), C2:C2000)
,但返回 0 这是不正确的。
谢谢。
[编辑]
可以使用=SUMIF(A2:A2000, ">10", C2:C2000) - SUMIF(A2:A2000, ">20", C2:C2000)
,但这并不是我想要的。
如果 A 列中的相应单元格在 (10; 20] 中,我正在尝试对 C2:C2000 中的所有单元格求和,但我遇到了条件问题。
我试过类似的东西=SUMIF(A2:A2000, AND(">10","<=20"), C2:C2000)
,但返回 0 这是不正确的。
谢谢。
[编辑]
可以使用=SUMIF(A2:A2000, ">10", C2:C2000) - SUMIF(A2:A2000, ">20", C2:C2000)
,但这并不是我想要的。
解决复杂条件限制的简单方法是将另一列用作“局部变量” - 使 D 列成为条件的结果(AND(等)),如果您想减少屏幕混乱,请将其隐藏,然后使用D2:D2000 作为 SUMIF 的 if 部分。
编辑添加备用选项:
http://support.microsoft.com/kb/275165
使用 Sum(if( .. )) 代替 SUMIF,使用积和求和代替 ANDS 和 OR。
就个人而言,我认为使用中间列更易于遵循和维护。
OpenOffice 中一个相对优雅的解决方案是使用 Sumproduct——它将两个数组相乘。为 Sumproduct 提供范围内的连续真值测试(我认为它返回一个布尔值数组)。像这样的东西:
SUMPRODUCT(C2:C2000;A2:A2000>"10";A2:A2000>="20")
我从这里得到这个:
http://user.services.openoffice.org/en/forum/viewtopic.php?f=9&t=28585
在 OpenOffice 中测试——我不知道 Excel 中是否有等价物。抱歉,我没有要测试的副本。