如何在 Excel 中的 SUM+IF 语句中使用逻辑 AND 或 OR

概要

在 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 助手或答案向导中的条件计算值,然后选择“搜索”。