Menu

Excel ISBLANK 和 ISNUMBER:IS 类函数详解

B2 为空时 =ISBLANK(B2) 返回 TRUE,B2 中是数字时 =ISNUMBER(B2) 返回 TRUE。学习 ISBLANK、ISNUMBER、ISTEXT、ISERROR、ISNA、ISEVEN 和 ISODD,了解为什么返回 "" 的公式不算空,以及怎样用 ISNUMBER(SEARCH()) 判断单元格是否包含某段文本。

本页的每张表格都是实时的:修改数字或公式,就会重新计算。

B2 为空时 =ISBLANK(B2) 返回 TRUE,否则返回 FALSE。B2 中是数字时 =ISNUMBER(B2) 返回 TRUE。这些 IS 类函数回答的是关于单元格的一个“是或否”的问题,它们通常作为 IF 中的判断条件:=IF(ISBLANK(B2),"Missing","OK")。

单元格里是什么?
C2
ABCDEF
1WhatValueISBLANKISNUMBERISTEXTISERROR
2Number120FALSETRUEFALSEFALSE
3TextAppleFALSEFALSETRUEFALSE
4Empty cellTRUEFALSEFALSEFALSE
5Number as text42FALSEFALSETRUEFALSE
6Date2026-03-15FALSETRUEFALSEFALSE
7LogicalTRUEFALSEFALSEFALSEFALSE
8Error#DIV/0!FALSEFALSEFALSETRUE
点击单元格查看它的公式。修改数字或公式,表格会重新计算。

逐行横向看。有几个结果会让人意外:

  • 日期是数字。Excel 把日期存储为天数,所以对 2026-03-15,ISNUMBER 为 TRUE。
  • '42 看起来像数字,但它是文本,所以 ISNUMBER 为 FALSE,ISTEXT 为 TRUE。导入的数据经常是这样。
  • TRUE 既不是数字也不是文本,所以第 7 行的四列都是 FALSE;检测它要用 ISLOGICAL。

在 B5 中输入 42(不带撇号),这一行就会变成 ISNUMBER 为 TRUE。

ISBLANK 与 ="":返回 "" 的公式不算空

只有什么都没有的单元格,ISBLANK 才为 TRUE。公式返回 "" 的单元格(例如 =IF(C2="","",C2*D2))看起来是空的,但里面有公式,所以 ISBLANK 返回 FALSE。与 "" 比较则会把两者都当作空:

B2 is empty, B3 holds =""

=ISBLANK(B2)    TRUE
=ISBLANK(B3)    FALSE
=B2=""          TRUE
=B3=""          TRUE

下面的表格用会把 "" 当作空的判断方法,比较了空单元格、"" 公式、空格和零:

看起来是空的,真的是空的吗?
C3
ABCD
1WhatValueEquals ""LEN
2Empty cellTRUE0
3Formula returning ""TRUE0
4A space FALSE1
5Zero0FALSE1
6Count blank2
点击单元格查看它的公式。修改数字或公式,表格会重新计算。

对于公式单元格,B3="" 为 TRUE,LEN 为 0,B6 中的 COUNTBLANK 计数为 2,即空单元格和 ""。第 4 行的空格按这些判断都不算空(LEN 为 1);如果只含空格的单元格也应该算作空,就用 =TRIM(B4)="" 判断。零也不算空。所以当一列由返回 "" 的公式填充时,要用 ="" 或 <>"" 判断,而不是 ISBLANK。

判断单元格是否包含某段文本:ISNUMBER(SEARCH())

Excel 没有 CONTAINS 函数。SEARCH 返回某段文本开始的位置,找不到时返回 #VALUE!。ISNUMBER 把它变成 TRUE 或 FALSE:

商品名称中是否包含“laptop”?
C2
ABCD
1ProductContains laptopCase-sensitive
2Pro Laptop 14YesNo
3MouseNoNo
4Laptop standYesNo
5USB cableNoNo
6laptop bagYesYes
点击单元格查看它的公式。修改数字或公式,表格会重新计算。

SEARCH 不区分大小写,所以在 C 列中“Laptop”和“laptop”都能匹配。FIND 区分大小写,所以 D 列只匹配“laptop bag”。把 A3 改成 Gaming laptop,两列都会显示 Yes。FIND 和 SEARCH 页面 详细介绍了这两个函数;如果要统计匹配的单元格个数而不是逐个标记,用 =COUNTIF(A2:A6,"*laptop*")。

ISERROR、ISERR 和 ISNA

有三个函数用来检测错误,它们的区别在于对 #N/A 的处理:

每个函数能捕获哪些错误?
C3
ABCDE
1WhatValueISERRORISNAISERR
2Not found#N/ATRUETRUEFALSE
3Divide by 0#DIV/0!TRUEFALSETRUE
4Bad argument#NUM!TRUEFALSETRUE
5Text in math#VALUE!TRUEFALSETRUE
6A number42FALSEFALSEFALSE
点击单元格查看它的公式。修改数字或公式,表格会重新计算。

ISERROR 对这四种错误都为 TRUE。ISNA 只对 #N/A 为 TRUE,这是查找函数找不到值时返回的错误。ISERR 正好相反:对除 #N/A 以外的所有错误为 TRUE。如果要替换错误而不是检测它,=IFERROR(B2,0) 比 =IF(ISERROR(B2),0,B2) 更简短;见 IFERROR 页面。

ISEVEN 和 ISODD

偶数时 =ISEVEN(B2) 为 TRUE,奇数时 =ISODD(B2) 为 TRUE。零是偶数,负数也可以使用,小数会先被截取为整数,所以 2.5 按 2 计算:

偶数还是奇数
C2
ABCD
1ItemNumberISEVENISODD
2A4TRUEFALSE
3B7FALSETRUE
4C0TRUEFALSE
5D-3FALSETRUE
6E2.5TRUEFALSE
点击单元格查看它的公式。修改数字或公式,表格会重新计算。

文本值会得到 #VALUE!。要区分偶数行和奇数行,例如做隔行着色或“每隔一行”的规则,用 =ISEVEN(ROW())。

练习:名称中是否包含“pro”?

找出 Pro 型号
B2
AB
1ProductPro model
2Laptop Pro 14
3Office Chair
4Monitor PRO 27
5Desk Lamp
点击单元格查看它的公式。修改数字或公式,表格会重新计算。

轮到你了: 在 B2 中判断:A2 中的商品名称包含“pro”(不区分大小写)时显示 "Yes",否则显示 "No"。公式向下填充到 B5。

该用哪个 IS 函数

函数值为以下内容时返回 TRUE
ISBLANK空单元格(不包括 ""、空格和 0)
ISNUMBER数字,包括日期、时间和百分比
ISTEXT文本,包括以文本形式存储的数字和 ""
ISNONTEXT任何非文本的内容,包括空单元格
ISLOGICALTRUE 或 FALSE
ISERROR任何错误
ISERR除 #N/A 以外的任何错误
ISNA仅 #N/A
ISEVEN / ISODD偶数 / 奇数
ISFORMULA包含公式的单元格
ISREF单元格引用

如果对看起来像数字的值,=ISNUMBER(B2) 却返回 FALSE,说明它们是以文本形式存储的,SUM 也会跳过它们。先修正数据(文本转数字页面 介绍了方法),IS 判断和合计就一致了。

常见问题

看起来是空的单元格,ISBLANK 为什么返回 FALSE?

单元格里有你看不见的东西:返回空文本的公式(="")、一个空格或一个撇号。只有真正空着的单元格,ISBLANK 才为 TRUE。要把 "" 也当作空,改用 =B2="" 或 =LEN(B2)=0 判断。

怎样在 Excel 中判断单元格是不是数字?

用 =ISNUMBER(B2)。数字、日期或百分比返回 TRUE,文本返回 FALSE,包括 '42 这样以文本形式存储的数字。放在 IF 中:=IF(ISNUMBER(B2),B2*2,"Not a number")。

ISERROR、ISERR 和 ISNA 有什么区别?

ISERROR 对任何错误都为 TRUE。ISNA 只对 #N/A 为 TRUE。ISERR 对除 #N/A 以外的所有错误为 TRUE。如果要替换错误而不是检测它,用 IFERROR 或 IFNA。

明明是数字,ISNUMBER 为什么返回 FALSE?

这个数字是以文本形式存储的,导入的数据经常出现这种情况:单元格显示 42,但里面是文本“42”,通常左对齐并带有一个绿色小三角。=ISTEXT(B2) 对它返回 TRUE。用 VALUE 或 --B2 把它转换成数字。

怎样在 Excel 中写“如果不为空”的 IF?

判断是否不等于空文本:=IF(B2<>"","Filled","Empty"),或者 =IF(NOT(ISBLANK(B2)),"Filled","Empty")。前一种写法还会把返回 "" 的公式也当作空。

Coddy 编程语言插图

和 Coddy 一起学编程

开始