Table of contents
本教程展示了如何使用ISBLANK和其他函数来识别Excel中的空白单元格,并根据单元格是否为空采取不同的行动。
在很多情况下,你需要检查一个单元格是否为空。 例如,如果单元格是空的,那么你可能想求和、计数、从另一个单元格复制一个值,或者什么都不做。 在这些情况下,ISBLANK是正确的函数,有时单独使用,但最常见的是与其他Excel函数结合使用。
Excel的ISBLANK函数
Excel中的ISBLANK函数检查一个单元格是否为空,与其他IS函数一样,它总是返回一个布尔值作为结果:如果一个单元格是空的,则为TRUE,如果一个单元格不是空的,则为FALSE。
ISBLANK的语法假设只有一个参数。
ISBLANK (值)在哪里? 价值 是对你要测试的单元格的引用。
例如,要找出A2单元格是否为 空的 ,使用这个公式。
=ISBLANK(A2)
要检查A2是否是 不空 ,将ISBLANK与NOT函数一起使用,NOT函数返回相反的逻辑值,即非空白为TRUE,空白为FALSE。
=not(isblank(a2))
将公式复制到更多的单元格,你会得到这样的结果。
Excel中的ISBLANK--需要记住的事情
你应该记住的主要一点是,Excel的ISBLANK函数可以识别 真正的空细胞 即完全不包含任何内容的单元格:没有空格、没有制表符、没有回车符,没有任何内容,只在视图中出现空白。
对于一个看起来是空白但实际上不是的单元格,ISBLANK公式会返回FALSE。 如果一个单元格包含以下任何一项,就会出现这种行为。
- 像IF(A1"", A1, "")这样返回一个空字符串的公式。
- 从外部数据库导入的零长度字符串,或由复制/粘贴操作产生。
- 空格、撇号、非破折号()、换行符或其他非打印字符。
如何在Excel中使用ISBLANK
为了更多地了解ISBLANK函数的功能,让我们看一下一些实际的例子。
Excel公式:如果单元格为空白,那么
由于Microsoft Excel没有内置的IFBLANK类函数,你需要同时使用IF和ISBLANK来测试一个单元格,并在该单元格为空时执行一个动作。
这里是通用版本。
IF(ISBLANK( 电池 ), " 如果空白 ", " 如果不是空白 ")为了看到它的作用,让我们检查B列(交货日期)中的一个单元格是否有任何数值。 如果该单元格是空白的,则输出 "开放";如果该单元格不是空白的,则输出 "完成"。
=IF(ISBLANK(B2), "打开", "完成")
请记住,ISBLANK函数只决定了 绝对空白单元格 如果一个单元格包含一些人眼看不到的东西,如零长度的字符串,ISBLANK将返回FALSE。 为了说明这一点,请看下面的截图。 B列中的日期是用这个公式从另一个工作表中提取的。
=IF(Sheet3!B2"",Sheet3!B2,"")
结果,B4和B6包含空字符串("")。 对于这些单元格,我们的IF ISBLANK公式产生了 "已完成",因为就ISBLANK而言,这些单元格不是空。
如果你的 "空白 "分类中包括含有公式的单元格,而公式的结果是 空字符串 ,然后用于逻辑测试。
=IF(B2="", "打开", "完成")
下面的截图显示了区别。
Excel公式:如果单元格不是空白,那么
如果你密切关注前面的例子并理解了公式的逻辑,你应该不难对它进行修改,因为只有在单元格不为空的情况下才会采取某种行动。
根据你对 "空白 "的定义,从以下方法中选择一种。
仅识别 真正的非空白 单元格,将ISBLANK返回的逻辑值包装成NOT,从而将其反转。
如果(not(isblank( 电池 )), " 如果不是空白 ", "")或者使用已经熟悉的IF ISBLANK公式(请注意,与之前的公式相比, value_if_true 和 value_if_false 值被调换)。
IF(ISBLANK( 电池 ), "", 如果不是空白 ")乳房 零长度的字符串 作为空白,使用""作为IF的逻辑测试。
IF( 电池 "", " 如果不是空白 ", "")对于我们的示例表,下面的任何公式都会起作用。 如果B列的单元格不是空的,它们都会在C列返回 "已完成"。
=IF(NOT(ISBLANK(B2)), "已完成", "")
=IF(ISBLANK(B2), "", "已完成")
=IF(B2"", "已完成", "")
如果单元格为空白,则留空
在某些情况下,你可能需要这样一个公式:如果单元格是空白的,什么都不做,否则采取一些行动。 事实上,这只不过是上面讨论的通用IF ISBLANK公式的一个变种,在这个公式中,你提供一个空字符串("")作为 value_if_true 参数和所需的值/公式/表达式为 value_if_false .
对于绝对空白的单元格。
IF(ISBLANK( 电池 ), "", 如果不是空白 ")将空字符串视为空白。
IF( 电池 ="", "", 如果不是空白 ")在下表中,假设你想做以下事情。
- 如果B列是空的,则C列留空。
- 如果B列包含一个销售数字,计算10%的佣金。
要做到这一点,我们将B2中的金额乘以百分比,并将表达式放入IF的第三个参数。
=if(isblank(b2), "", b2*10%)
或
=if(b2="", "", b2*10%)
将公式复制到C列后,结果如下。
如果范围内的任何单元格是空白的,那么就做一些事情
在Microsoft Excel中,有几种不同的方法来检查一个区域的空单元格。 我们将使用IF语句,如果区域中至少有一个空单元格,则输出一个值,如果根本没有空单元格,则输出另一个值。 在逻辑测试中,我们计算区域中空单元格的总数,然后检查该计数是否大于零。 这可以通过以下两种方法进行COUNTBLANK或COUNTIF功能。
COUNTBLANK( 范围 )>0 COUNTIF( 范围 ,"")>0或者用更复杂一点的SUMPRODUCT公式。
SUMPRODUCT(--( 范围 =""))>0例如,要把 "开放 "状态分配给任何在B列到D列有一个或多个空白的项目,你可以使用以下任何公式。
=IF(COUNTBLANK(B2:D2)>0, "打开","")
=IF(COUNTIF(B2:D2,"")>0, "开放", "")
=IF(SUMPRODUCT(--(B2:D2=""))>0, "Open", "")
注意:所有这些公式都将空字符串视为空白。
如果范围内的所有单元格都是空白,那么就做一些事情
为了检查范围内的所有单元格是否为空,我们将使用与上例相同的方法。 不同的是IF的逻辑测试。 这一次,我们计算不为空的单元格。 如果结果大于零(即逻辑测试评估为TRUE),我们知道范围内并非每个单元格都是空的。 如果逻辑测试为FALSE,这意味着范围内所有单元格都是空的。因此,我们在IF(value_if_false)的第三个参数中提供所需的值/表达式/公式。
在这个例子中,对于B列到D列的所有里程碑都为空白的项目,我们将返回 "未开始"。
在Excel中计算非空单元格的最简单方法是使用COUNTA函数。
=IF(COUNTA(B2:D2)>0, "", "未开始")
另一种方法是COUNTIF用于非空白(""为标准)。
=IF(COUNTIF(B2:D2,")>0, "", "未开始")
或者用同样的逻辑使用SUMPRODUCT函数。
=IF(SUMPRODUCT(--(B2:D2""))>0, "", "未开始" )
ISBLANK也可以使用,但只能作为一个数组公式,应按Ctrl + Shift + Enter完成,并与AND函数结合使用。 只有当每个单元格的ISBLANK结果为TRUE时,逻辑测试才需要AND来评估为TRUE。
=IF(AND(ISBLANK(B2:D2)), "未开始", "")
注意:在为你的工作表选择公式时,需要考虑的一个重要问题是你对 "空白 "的理解。 基于ISBLANK、COUNTA和COUNTIF的公式,以""为标准,寻找绝对空白的单元格。 SUMPRODUCT也将空字符串视为空白。
Excel公式:如果单元格不为空白,则求和
要在其他单元格不为空白时对某些单元格求和,可使用SUMIF函数,它是专门为条件求和设计的。
在下表中,假设你想找到已经交付和尚未交付的物品的总金额。
如果不是空白,那么总和
要获得已交付项目的总数,请检查是否 交付日期 B列中的值不是空白,如果不是空白,则对C列中的值进行求和。
=sumif(b2:b6, "", c2:c6)
如果空白,那么总和
要得到未交付项目的总数,请将如果 交付日期 B栏中是空白。
=sumif(b2:b6, "", c2:c6)
如果范围内的所有单元格都不是空白,则求和
要想只在给定范围内的所有单元格不为空白时对单元格求和或进行其他计算,可以再次使用带有适当逻辑测试的IF函数。
例如,COUNTBLANK可以给我们带来B2:B6范围内的空白总数。 如果计数为零,我们就运行SUM公式,否则什么都不做。
=if(countblank(b2:b6)=0, sum(b2:b6), " ")
同样的结果也可以用一个 阵列 IF ISBLANK SUM公式(请记得按Ctrl + Shift + Enter正确完成)。
=if(or(isblank(b2:b6)), "", sum(b2:b6))
在这种情况下,我们将ISBLANK与OR函数结合使用,因此,如果范围内至少有一个空白单元格,则逻辑测试为 "true"。 因此,SUM函数会转到 value_if_false 争论。
Excel公式:如果单元格不是空白则计数
你可能知道,Excel有一个特殊的函数来计算非空单元格,即COUNTA函数。 请注意,该函数计算包含任何类型数据的单元格,包括TRUE和FALSE的逻辑值,错误,空格,空字符串等。
例如,要计算 非空白 B2:B6范围内的单元格,这就是要使用的公式。
=COUNTA(B2:B6)
使用COUNTIF和非空白标准("")也可以达到同样的效果。
=countif(b2:b6,"" )
要计算 空白 单元,使用 COUNTBLANK 函数。
=countblank(b2:b6)
Excel中的ISBLANK不工作
如前所述,Excel中的ISBLANK只对以下情况返回TRUE 真正的空细胞 绝对不包含任何东西。 因为 看似空白的单元格 包含产生空字符串、空格、撇号、非打印字符等的公式,ISBLANK返回FALSE。
在某种情况下,当你想把视觉上的空单元格视为空白时,可以考虑以下变通方法。
将零长度的字符串视为空白
为了将零长度字符串的单元格视为空白,在IF的逻辑测试中,放一个空字符串("")或LEN函数等于零。
=IF(A2="", "空白", "非空白")
或
=IF(LEN(A2)=0, "空白", "非空白")
删除或忽略多余的空格
如果ISBLANK函数因为空白而出现故障,最明显的解决办法就是去掉它们。 下面的教程介绍了如何快速去掉前导、后导和多个中间空格,除了单词之间的单个空格字符:如何在Excel中去掉多余的空格。
如果由于某种原因,删除多余的空格对你不起作用,你可以强迫Excel忽略它们。
把含有 只有空格字符 为空,在IF的逻辑测试中包括LEN(TRIM(cell))=0,作为一个附加条件。
=IF(OR(A2="", LEN(TRIM(A2))=0), "空白", "非空白")
要忽略一个 特定非打印字符 ,找到它的代码并提供给CHAR函数。
例如,为了识别含有 空字符串 和 非破损空间 ( )作为空白,请使用以下公式,其中160是一个非断裂空格的字符代码。
=IF(OR(A2="", A2=CHAR(160)), "空白", "非空白")
这就是如何使用ISBLANK函数来识别Excel中的空白单元格。 感谢你的阅读,希望下周能在我们的博客上见到你
可用的下载
Excel ISBLANK公式实例