概要
在 Microsoft Excel 中,在 SUM+IF 语句中使用逻辑函数 AND 和/或 OR 测试多个条件的范围时,它可能无法按预期工作。 嵌套 IF 语句提供此功能;但是,本文讨论了使用以下公式的第二种更简单的方法。
对于 AND 条件
=SUM(IF(Test1*Test2*...*Testn))
对于 OR 条件
=SUM(IF(Test1+Test2+...+Testn))
详细信息
使用 SUM+IF 语句对通过给定测试的区域中的单元格数进行计数,或对另一个(或相同)区域中相应值满足指定条件的区域中的这些值求和。 它的行为类似于 Microsoft Excel 中的 DSUM 函数。
示例:
本示例计算介于 1 和 10 之间的 A1:A10 范围内的值数(包括 1 到 10)。
可以使用以下嵌套 IF 语句:
=SUM(IF(A1:A10>=1,IF(A1:A10<=10,1,0)))
在进行多个测试时,以下方法也有效且更易于阅读:
=SUM(IF((A1:A10>=1)*(A1:A10<=10),1,0))
以下方法计算两个给定日期之间的日期数:
=SUM(IF((A1:A10>=DATEVALUE("1/10/99"))*(A1:A10<=DATEVALUE("2/10/99")),1,0))
注释
- 必须同时按 Ctrl+Shift+ENTER 将这些公式输入为数组公式。 在 Macintosh 上,按 COMMAND 和 RETURN 键。
- 数组不能引用整个列。
使用此方法,你将一个逻辑测试的结果乘以另一个逻辑测试,以将 TRUE 和 FALSE 返回到 SUM 函数。 可以将这些等同于:
TRUE*TRUE=1
TRUE*FALSE=0
FALSE*TRUE=0
FALSE*FALSE=0
上面所示的方法计算两个测试计算结果为 TRUE 的区域 A1:A10 中的单元格数。 若要对相应单元格(例如 B1:B10)中的值求和,请修改公式,如下所示:
=SUM(IF((A1:A10>=1)*(A1:A10<=10),B1:B10,0))
可以在 SUM+IF 语句中同样实现 OR。 为此,请通过将乘法符号替换为加号 (+) 来修改上面所示的公式。 它提供以下泛型公式:
=SUM(IF((Test1)+(Test2)+...+(Testn),1,0))
参考文献
有关如何基于条件计算值的详细信息,请在“帮助”菜单上选择“Microsoft Excel 帮助”,键入如何基于 Office 助手或答案向导中的条件计算值,然后选择“搜索”。