
信息函数是Excel中里的“体检医生”和“质检员”,其不直接参与复杂的数值计算,而是专注于透视数据的内在属性——通过精准识别数据类型、检测单元格属性、捕获环境信息,扮演着“望闻问切”的诊断角色。信息函数的核心使命是提升数据质量、为公式构建免疫屏障、为自动化报表铺设智慧通路,确保每一工作表都“表里如一,健康运行”。

判断单元格是数字、文本、错误值还是空值 | ||
判断单元格是否包含公式或被保护、格式类型等 | ||
返回当前文件路径、工作表名、操作系统信息等 |
02 判断数据类型函数
数据清洗与验证
=ISEVEN(数值number) '如果数字为偶数,则返回TRUE=ISODD(数值number) '如果数字为奇数,则返回TRUE=ISNUMBER(值value) '检查一个值是否为数值,返回TRUE或FALSE=ISLOGICAL(值value) '检查一个值是否为逻辑值,返回TRUE或FALSE=ISTEXT(值value) '检查一个值是否为文本,返回TRUE或FALSE=ISNONTEXT(值value) '检查一个值是否不是文本(空单元格不是文本),返回TRUE或FALSE=ISBLANK(值value) '检查是否引用了空单元格,返回TRUE或FALSE=TYPE(值value) '以整数形式返回值的数据类型
ISEVEN函数和ISODD函数是Excel中专门处理整数奇偶性布尔判定(即判断一个数值是奇数还是偶数)的核心函数,常用于基于数字奇偶性进行分类、筛选、条件计算或数据验证的场景。例如,通过IF+ISEVEN/ISODD+MID函数组合可以提取并判断身份证号码倒数第二位(性别位)的奇偶性从而快速辅助校验性别信息的正确性;通过ISEVEN/ISODD+ROW函数组合结合条件格式功能可快速为奇数行和偶数行设置不同的背景色从而实现清晰的行间交替显示,显著增强工作表的视觉可读性,如下图:

ISNUMBER/ISLOGICAL/ISTEXT/ISNONTEXT/ISBLANK函数则构成了Excel中用于判断数据类型及空值的布尔工具集,其核心作用是为数据清洗、公式防错、容错计算、条件分支提供绝对可靠的前置判断依据,从根源上避免#VALUE!、#DIV/0!等错误的传递。
需要注意的是,空字符串“”以及空格的数据类型均是文本,只有从未输入或已清空内容的单元格才是真空单元格;日期与时间的数据类型是数值(详见Excel函数——日期与时间函数序列值),逻辑值虽然底层存储形式是数字0和1,但数值0和1不是逻辑值(详见Excel函数——逻辑函数逻辑常量);以上五个函数对错误值均不会返回错误本身,而是返回TRUE或FALSE,若要专门判断错误类型,应使用下文介绍的ISNA/ISERR/ISERROR/ERROR.TYPE函数。
TYPE函数的核心作用是返回参数的数据类型编号,帮助用户在公式中判断一个单元格或表达式的结果是数字、文本、逻辑值、错误值还是数组,主要应用场景包括条件判断、数据清洗、错误处理等,其弥补了ISNUMBER、ISTEXT、ISLOGICAL、ISERROR函数只能返回TRUE/FALSE的不足(TYPE函数可区分更多类型并返回数值,便于嵌套运算)。
需要注意的是,TYPE函数无法识别单元格格式,例如日期、货币等本质上仍是数字,因此会返回1;当参数为真空单元格时,TYPE函数将其视为数字0,因此会返回1,而非空白类型。此外,该函数也不适用于判断对象或引用类型,其仅用于确定结果值或显示值的类型——如果值是对一个包含公式的单元格的单元格引用,则其返回公式结果值的类型。
数据类型编号 | |
公式调试与错误处理
=ISNA(值value) '检查一个值是否为#N/A,返回TRUE或FALSE=ISERR(值value) '检查一个值是否为#N/A以外的错误,返回TRUE或FALSE=ISERROR(值value) '检查一个值是否为错误,返回TRUE或FALSE=ERROR.TYPE(错误值error_val) '返回对应于Microsoft Excel中的错误值之一的数字或返回“#N/A”错误(不存在错误)
当函数无法正常执行、参数不合法、数据类型不匹配或计算条件不满足等原因导致失败时,Excel并不会直接崩溃,而是会根据具体的失败原因,返回一个预设的、具有固定格式的代码作为提示,这就是错误值返回值,其属于合法的返回值类型,并且具有向下传递的特性——只要一个函数的某个参数中包含错误值,那么这个函数通常也会返回相同的错误值。
ISNA/ISERR/ISERROR/ERROR.TYPE函数是Excel中专门用于错误类型检测的核心函数,其与逻辑函数(详见Excel函数——逻辑函数02错误处理函数)相结合可以实现对不同错误类型的精细化、差异化处理:既能保留具有排查价值的错误信息,用于定位公式异常、数据缺失或计算冲突的根源;也能对无业务意义的错误值进行屏蔽,或返回预设的默认值,从而美化报表呈现、提升公式健壮性与容错能力,避免单一错误值扩散导致公式计算失效。
公式产生的结果超出Excel数值范围(约±1e-308到±1e+308),或执行了非法数学操作(如对负数开平方、对非正数取对数) | |||
| #GETTING_DATA | |||
ERROR.TYPE函数与逻辑函数IF和SWITCH函数相结合,可以揭示不同的错误类型,避免直接显示晦涩的错误代码,方便用户排查与调试:
=IF(ISERROR(A1),SWITCH(ERROR.TYPE(A1),1,"交集为空",2,"除数为零",3,"值/数据类型不匹配",4,"无效引用",5,"无法识别名称",6,"数值非法",7,"无法找到匹配值","未知错误"),"无错误") '检查单元格A1是否有错误,判断并返回相应错误类型
需要注意的是,ERROR.TYPE函数诞生于动态数组功能问世之前,所以其无法识别Microsoft 365和Excel 2021及以上版本引入的新错误类型,如动态数组计算错误#CALC!、动态数组溢出错误#SPILL!、数据连接错误#CONNECT!、资源访问被阻止#BLOCKED!、数据类型字段不存在#FIELD!、未知错误#UNKNOWN!,所以上述公式的核心逻辑是先判断单元格是否有错误,再对有错误的单元格进行错误类型细分(新增错误类型统一返回未知错误),最后为无错误的单元格返回友好提示。
元数据与结构判断
=ISREF(值value) '检查一个值是否为引用,返回TRUE或FALSE=ISFORMULA(引用reference) '检查一个值是否为公式,返回TRUE或FALSE(Microsoft 365和Excel 2013及以上版本适用)=ISOMITTED(参数argument) '检查LAMBDA函数中的参数是否缺失,并返回TRUE或FALSE(仅Microsoft 365适用,在实际使用中常配合LAMBDA实现可选参数的灵活设计)

ISREF函数的核心作用是检查一个值是否为引用,主要应用场景包括——验证用户提供的参数是否为有效引用,避免因参数类型不匹配或引用无效而导致公式报错;快速定位那些引用了已被删除、剪切或覆盖的单元格、行、列或工作表的公式,帮助用户迅速发现公式异常、数据缺失或计算冲突的根源,从而提升公式的健壮性与容错能力;确保跨工作表引用未被破坏,保障多表公式的稳定性。
ISFORMULA函数(Microsoft 365和Excel 2013及以上版本适用)的核心作用是检查一个值是否为公式,主要应用场景包括——定位工作表中包含公式的单元格,快速区分输入值和计算值;可视化计算逻辑,提高报表可理解性;防止用户在非预期区域误输入数据而覆盖公式,保护计算逻辑的完整性。
ISOMITTED函数(仅Microsoft 365适用)的核心作用是在一个LAMBDA函数内部检测用户是否提供了某个可选参数,主要应用场景是与IF函数嵌套使用,以实现灵活的条件逻辑——在没有ISOMITTED函数之前,LAMBDA函数的所有参数都是必需的,调用时必须按顺序提供,否则会报错,而ISOMITTED函数的存在,允许用户为LAMBDA函数定义可选参数,并在函数内部根据参数是否被提供来执行不同的计算逻辑。需要注意的是,ISOMITTED函数检测的是参数在调用时是否被物理性省略——如果你明确提供了一个参数,即使它的值是空字符串""、0或空引用,其也会返回FALSE。
总的来说,ISREF和ISFORMULA函数是对单元格或引用本身进行检错和审计的工具,而ISOMITTED函数则是针对LAMBDA函数的调用行为进行逻辑判断的控制工具。
=SHEET(值value) '返回指定工作表或其他引用的工作表编号(Microsoft 365和Excel 2013及以上版本适用)=SHEETS(引用reference) '返回引用中的工作表数(Microsoft 365和Excel 2013及以上版本适用)=INFO(类型文本type_text) '返回当前操作环境的有关信息=CELL(信息类型info_type,[引用reference]) '返回引用中第一个单元格的格式、位置或内容的有关信息(取决于工作表的读取顺序)
SHEET和SHEETS函数(均Microsoft 365和Excel 2013及以上版本适用)属于工作表引用函数,前者的作用是返回指定工作表或其他引用的工作表编号,主要应用场景是将工作表的物理编号,转换为数据区域的行号或列号,从而让INDEX函数动态抓取对应位置的数据以实现动态数据引用(这种动态引用的本质是位置映射,局限性在于其对工作表顺序敏感,且新增/删除工作表会导致后续所有工作表编号变化可能引发混乱);后者的作用是返回引用中的工作表数,主要应用场景是与INDIRECT函数结合,构建跨多表的3D引用,如=SUM(Sheet1:INDIRECT("Sheet"&SHEETS()&"!A1")),实现对同结构多表的动态汇总(此处的Sheet1和SheetN都是指工作表名称而非工作表索引,由于此处是硬编码,所以要汇总的多表应当结构一致,且首表名称为Sheet1,尾表名称为Sheet与工作表数量N的组合,首尾之间工作表的名称任意)。动态数据引用及跨多表3D引用的相关具体内容这里暂不讨论。
INFO函数在Excel中是一个实用的信息工具,它的核心作用就像一个“环境侦察兵”,用于返回当前操作环境的有关信息,例如操作系统版本、Excel软件版本、当前工作簿的计算模式(自动或手动)、默认文档存储路径以及当前打开的所有工作簿中包含的工作表总数等。需要注意的是,INFO函数具有易失性,即工作簿中任何操作都可能触发其重新计算,这虽然保证了信息的实时性,但在大量使用时可能略微影响性能。
与INFO函数关注宏观环境信息不同,CELL函数则返回特定单元格的格式、位置或内容等微观信息,其主要应用场景包括——通过CELL_type与IF函数结合进行数据校验与预处理;通过CELL_filename与文本处理函数结合动态提取完整文件路径与文件名。
若单元格中的数值格式使用了括号(例如会计专用格式),则返回1,否则返回0 | |
返回与单元格中的“前置标签”相对应的文本值(若单元格文本左对齐则返回单引号';若右对齐则返回双引号";若居中则返回插入字符^;若两端对齐则返回反斜线\;若是其他情况则返回空文本"") | |
返回单元格的锁定状态,锁定返回1,未锁定返回0 | |
返回对应于单元格中数据类型的文本值(若单元格为空则返回"b";若包含文本常量,则返回"l";若包含任何其他内容,则返回"v") | |
返回单元格所在列的列宽(取整后的数值) |
当参数info_type为“format”,以及参数reference为用内置数字格式设置的单元格时,函数CELL返回的文本值如下表:
# ?/? 或 # ??/?? | ||
yy-m-d或yy-m-d h:mm或dd-mm-yy | ||
d-mmm-yy或dd-mmm-yy | ||
d-mmm或dd-mmm | ||
h:mm AM/PM | ||
h:mm:ss AM/PM | ||
h:mm:ss | ||
h:mm |
04 其他函数
=N(值value) '将不是数值形式的值转换为数值形式=NA() '返回错误值#N/A(用于占位)=PHONETIC(引用reference) '官方设计用于返回一个文本字符串的日语假名发音,在中文环境下常用于将指定区域内的文本内容连接成一个字符串(Microsoft 365和Excel 2024及以上版本适用)

