
概括
为了防止公式在某些单元格为空时进行计算,可以使用带有适当逻辑测试的IF 函数。在所示示例中,E5 单元格中的公式为:
=IF(COUNT(C5:C7)=3,SUM(C5:C7),"")由于单元格 C7 为空,公式不会显示任何结果。在下面的屏幕截图中,C7 包含一个数字,并显示了总和:

通用公式
=IF(logical_test,formula(),"")
解释
目标是在计算结果之前验证所有必需值的输入是否正确。在所示工作表中,SUM 函数仅用作示例。您可以使用相同的方法对任何公式进行计算,以确保在所有必需值都可用之前不会进行计算。您可以根据实际情况调整逻辑。以下是一些解决此问题的示例。最佳解决方案取决于项目需求和您的个人偏好。
如果 + 计数
在所示示例中,我们将 IF 函数与COUNT 函数结合使用:
=IF(COUNT(C5:C7)=3,SUM(C5:C7),"")
翻译:如果 C5:C7 单元格中的数字个数为 3,则对 C5:C7 单元格求和。否则,不显示任何内容。
该逻辑测试基于 COUNT 函数,该函数用于统计数值:
COUNT(C5:C7)=3 // returns TRUE or FALSE
当单元格区域 C5:C7 包含三个数字时,此测试将返回 FALSE。此时,IF 函数将返回 value_if_false ,该值以空字符串("")的形式提供。在 Excel 中,空字符串显示为空单元格。由于原始工作表中 C7 单元格为空,因此公式不会显示任何结果。一旦单元格区域 C5:C7 包含三个数字,测试将返回 TRUE,IF 函数将运行 SUM 函数,最终返回 C5:C7 的总和。
检查空白单元格的方法有很多,下面将介绍其他几种方法。
IF + COUNTBLANK
COUNTBLANK 函数用于统计指定区域中的空单元格数量,因此我们可以编写一个更简洁的公式,如下所示:
=IF(COUNTBLANK(C5:C7),"",SUM(C5:C7))
如果 COUNTBLANK 返回任何非零数字,IF 函数会将该数字判定为 TRUE,并返回空字符串 ("")。如果 COUNTBLANK 返回零,IF 函数会将零判定为 FALSE,并返回 SUM 函数的结果。
IF + ISBLANK
另一种方法是使用 ISBLANK 函数。当单元格引用为空时,ISBLANK 返回 TRUE。ISBLANK 最初设计用于仅测试单个单元格,但您可以在OR 函数中连续使用 ISBLANK 三次,如下所示:
=IF(OR(ISBLANK(C5),ISBLANK(C6),ISBLANK(C7)),"",SUM(C5:C7))
如果提供的任何值为 TRUE,则 OR 函数将返回 TRUE。换句话说,如果 ISBLANK 函数中的任何一个返回 TRUE,则 OR 函数将返回 TRUE。或者,可以使用如下公式:
=IF(OR(ISBLANK(C5:C7),"",SUM(C5:C7))
注意:这是一个数组公式,在 Excel 2019 及更早版本中必须使用 Ctrl + Shift + Enter 组合键输入。在当前版本的 Excel 中,可以直接使用。
在这个公式中,我们将一个区域传递给 ISBLANK 函数,ISBLANK 函数返回一个包含 3 个结果的数组。如果数组中有任何值为 TRUE,则 OR 函数返回 TRUE,导致 IF 函数返回空字符串 ("")。如果数组中的所有值均为 FALSE(即所有三个单元格都包含值),则 OR 函数返回 FALSE,而 IF 函数返回 SUM 函数的结果。
SUM(C5:C7)
IF 语句与逻辑运算符
另一种方法是使用标准逻辑运算符 ,例如“"”和“<>”来检测单元格是否为空。要检测是否存在空单元格,可以使用如下公式:
=IF(OR(C5="",C6="",C7=""),"",SUM(C5:C7))
要检查单元格是否非空,请在 AND 函数中使用 <>"" ,如下所示:
=IF(AND(C5<>"",C6<>"",C7<>""),SUM(C5:C7),"")
在这个公式中,请注意 SUM 函数已移至value_if_true参数,并且仅当所有 3 个单元格 都不为空时才会运行。
IF + COUNTA
最后,您还可以使用 COUNTA 函数来检查单元格是否为非空,如下所示:
=IF(COUNTA(C5:C7)=3,SUM(C5:C7),"")
COUNT 函数只能统计数值,而COUNTA 函数可以统计任何类型的值(例如数字或文本)。只要 C5:C5 单元格区域包含三个值(数字或文本),结果就为 TRUE,SUM 函数就会运行。这对于示例(需要输入数值)来说意义不大,但在其他情况下可以使用。










