【表格教程】公式错误值搞不懂?一文学透!

Yhan
Yhan

创作者俱乐部成员

在WPS表格中,常常会因为公式参数不符合语法要求而导致错误值的产生,最常见的错误值有#VALUE!、#N/A、#REF!、#NAME?、#NUM!等,那对应的产生原因和解决办法是什么呢?本文将为您一一解答。

错误值及其产生原因

#VALUE!

在表格计算过程中,若函数或计算公式出错,会导致计算错误,显示错误值#VALUE!

常见的公式错误原因有使用公式语法不正确、引用公式带有空字符单元格、运算时带有文本单元格、数组计算未使用正确格式等。

原因一:公式语法不正确

假若我们想计算A2+B2-C2-D2,输入公式=SUM(A2:B2-C2-D2)得出错误值#VALUE!

这是因为A2:B2为连续区域引用,在与不相交的单元格计算时,需要添加逗号分隔,当公式语法不正确,会导致错误值#VALUE!

此时更改为=SUM(A2:B2,-C2-D2)就可以了。

原因二:使用运算符计算带有文本的单元格

我们使用表格对单元格运算求和,有时会出现错误值 #VALUE!

以此表格为例,在C8单元格中输入=C3+C4+C5+C6+C7,回车确定,结果显示错误值 #VALUE!

遇到这种情况,是因为使用运算符加号计算了带有文本的单元格,如文字、单词、特殊符号等。

使用表格定位功能,CTRL+G快速定位带有文本的单元格,修改带有文本的单元格内容为数字,使其正确计算。

原因三:公式引用的单元格中带有空字符串

我们使用在表格中计算时,引用了带有空字符串的单元格,会导致计算错误。

例如,我们想计算此表格开始日期与结束日期相隔的天数。

在D3单元格中输入=DATEDIF(B3,C3,"d"),下拉填充公式,结果显示错误值 #VALUE!

遇到这种情况,可能是因为被引用的日期单元格中含有空字符串。

此时清除日期单元格前后空字符串就可以得到正确的计算结果。

原因四:数组计算时未使用正确格式的大括号

当我们在表格中进行数组计算时,未使用正确格式的大括号也会导致出现错误值 #VALUE!

例如,在使用TRANSPOSE函数转置表格时,有时出现错误值#VALUE!

这是因为在此数组公式中,需要使用Ctrl+Shift+Enter快捷键将公式用大括号括起来。

#N/A

常见的错误原因有查找区域不存在查找值、数据类型不匹配、查找数据源引用错误、引用了返回值为#N/A的函数或公式等。

原因一:查找区域不存在查找值会导致#N/A错误

#N/A错误通常表示公式找不到要求查找的内容。

比如查询“计算机”的数量,输入公式=VLOOKUP(G4,$B$1:$D$6,3,0),但数据源中不存在“计算机”,故返回#N/A。

当我们计算求和时,公式中包含了错误返回值#N/A,此时会导致最后计算结果错误。

为了避免这种情况,可以借助IFERROR函数,将错误值替换为文字或数值信息。

输入公式=IFERROR(VLOOKUP(G4,$B$1:$D$6,3,0),0)。

这样就可以将H4的错误值转为数值0,避免后续计算错误了。

原因二:查找数据源引用错误

以此表格为例,我们可见表格前几项已经完成查找,下拉填充单元格时出现错误值#N/A。

这是因为查询“冰箱”时数据源选择为B1:D6,公式填充复制后,数据源由于相对引用变成了B4:D9,导致“桌子”查询不到结果。

遇到这种情况,需要将数据范围进行绝对引用。

选中数据区域,使用F4键快速添加此区域的绝对引用,这样再次下拉填充公式时,就可修复#N/A错误值。

原因三:数据类型不匹配导致#N/A错误

这有可能是因为单元格格式不同导致的。

A列是文本格式的,G列的序号是数值形式,进行查找时,要求查找值与数据源对象数据类型必须完全一致。

遇到这种情况,统一将文本格式的单元格转为数字就可以了。

原因四:引用返回值为#N/A错误的函数或公式

以此数据表格为例,我们可见单元格中包含了返回#N/A错误值的公式函数。

若我们想计算第6行数值总和,此时我们可见计算结果为#N/A错误值。

这是因为在运算中使用了返回值为#N/A错误值公式。

遇到这种情况,我们可以使用IFERROR函数。

通过修改返回值为 #N/A的单元格,从而更正最终计算结果。

#REF!

通常表格计算中误删了数据行列、将单元格剪切粘贴到公式所引用的单元格上或是公式中引用了不正确的区域,都会导致出现 #REF!错误。

原因一:删除行列导致#REF!错误

以此表格为例,我们想计算总销售量。

输入公式=SUM(B3,C3,D3,E3),回车确定即可得出“朝阳区”总销售量。

当公式中引用的行或者列被删除时,结果会出现#REF!错误。

这是因为公式中引用的行列数据被删除,所以出现了无效单元格,导致计算错误。

遇到这种情况,使用撤销键CTRL+Z撤销删除操作,或者补充被删除的行列数据,这样就可以得到正确计算结果了。

原因二:引用的数据中剪切粘贴了其他公式计算出来的单元格

以此表格为例。

我们可见K2单元格为公式计算所得,F3单元格为B3、C3、D3、E3总和。

当将K2单元格通过剪切的方式,粘贴到D3单元格,此时计算结果出现#REF!错误。

这是因为公式中被引用的单元格被替换为含有其他公式计算的单元格,导致出现了无效单元格,所以计算错误。

遇到这种情况,撤销剪切粘贴的操作,并将K2单元格的内容粘贴为数值。

这样就可以修复#REF!错误。

原因三:公式中引用了无效区域或参数

以此表格为例。

使用INDEX函数可以通过表格的行号和列号快速对数据表查找定位。

输入公式=INDEX(B3:E7,7,1),此公式的意思是,查找B3:E7区域中的第7行第1列的数据。

我们可见查找数据区域为“B3:E7”是5行4列,而我们在“行序数”中输入的参数是“7”。

当在公式中引用了区域或参数就会显示计算结果错误。

遇到这种情况,修改为正确的引用参数就可以了。

#NAME?

例如公式名称拼写错误、公式中的文本值未添加双引号、区域引用缺少冒号、引用未定义的名称或已定义名称出现拼写错误等,都可导致#NAME?错误。

原因一:公式名称拼写错误导致#NAME?错误

例如使用SUM函数计算产品总值。

当公式名称拼写错误时,计算结果会返回错误值 #NAME?

此时我们就要仔细检查公式拼写,将公式名称拼写正确就可得出正确的计算结果。

原因二:公式中文本引用缺少双引号导致#NAME?错误

以此表格为例,我们想要查找表格中的某一员工工号。

输入公式=VLOOKUP(李某,A2:B6,2,FALSE),回车确定,计算结果会返回错误值#NAME?

这是因为公式中引用了未添加双引号的文本值。

遇到这样的情况,在文本值前后添加双引号即可修复 #NAME?错误。

原因三:公式中的区域引用缺少冒号

以此表格为例,我们想要查找表格中的某一员工工号,输入公式=VLOOKUP(李某,A2B6,2,FALSE)

回车确定,计算结果会返回错误值 #NAME?

这是因为公式中引用区域未添加冒号。

遇到这样的情况,公式中的引用区域添加冒号就可以了。

原因四:公式中引用了未定义的名称导致#NAME?错误

在表格中使用函数公式计算,可以使用公式名称管理器功能,对所选区域设置名称,便于输入与计算。

例如,使用SUM函数计算产品总值,我们可以对产品数值区域设置名称。

点击公式-名称管理器,在弹出的窗口中,新建名称,设置为产品数值范围。

此时再使用SUM函数计算产品总值,输入公式为=SUM(总值)就可以得到计算结果。

当我们输入错误的未定义名称,会显示#NAME?

此时就需要我们检查名称拼写是否有误,或是添加新的自定义名称。

#DIV/0!

我们在表格计算的过程中,有时会出现 #DIV/0!错误值。

它表示在除法运算中,分母为0导致的计算错误。

以此表格为例。

我们可见分子为1,分母为0,A3/B3的计算结果显示错误值 #DIV/0!

这是因为在表格的除法运算中,分母为0导致的计算错误。

遇到这种情况,可以使用IF函数来判断分母的存在。

例如,在C3单元格中输入公式=IF(B3,A3/B3,0),可以将计算的错误结果返回0值。

同理也可自定义返回讯息,比如返回为“含有0值”、“需要修改”、“计算错误”等。

除此以外,在计算平均值时也容易出现错误值#DIV/0!

▪以此成绩单为例,我们想求出低于60分同学的平均成绩,在C4单元格中输入公式=AVERAGEIF(B4:B10,<60)

此公式的意思为使用AVERAGEIF函数计算B4:B10单元格区域满足条件“<60”的单元格的平均值。

回车确定,就可看C4单元格出现 #DIV/0!错误值,这是因为在此区域中没有满足条件“<60”的单元格,也就是0个单元格满足该条件。

当求平均值时分母为0时,就会出现计算错误结果为#DIV/0!了。

#NUM!

我们在表格计算的过程中,有时计算结果会出现 #NUM!错误值。

这是因为公式包含无效数值或者数字太大导致的计算错误,在迭代计算时若多次迭代仍未求到结果,也会导致#NUM!错误。

原因一:公式生成的数字太大或太小,会显示#NUM!错误

以此表格为例,数值1为500,数值2为581。

我们想计算500的581次方,输入公式=A3^B3,表示A3单元格的B3次方。

此时显示#NUM!错误,这是因为计算结果数字太大,导致计算错误。

原因二:公式中引用了无效的参数,会显示#NUM!错误

以此表格为例,我们想计算A3单元格的平方根数。

输入公式=SQRT(A3),此公式的意思是计算A3单元格的平方根数。

回车确定,显示#NUM!错误。

这是因为A3单元格的参数为负数,而负数无法计算平方根数,当公式中引用了无效参数时,计算结果会显示为#NUM!错误。

原因三:使用迭代计算RATE 和IRR函数,会显示#NUM!错误

迭代计算是数值计算中较为常见的计算方法.

当使用IRR函数和RATE 函数计算利率时,函数经过多次迭代计算,仍未求到结果,此时会返回错误值#NUM!

遇到这种情况,我们可以修改迭代计算的最多迭代次数和最大误差。

点击左上角文件-选项,在重新计算-迭代计算处,可以修改最多迭代次数与最大误差值,这样就可以修复此错误。

解决方法

显示计算步骤 检查公式错误

出现错误值、错误的计算结果,这时可以使用「公式求值」功能,通过一步步计算公式来检查公式中的错误。

我们可见D2单元格结果为错误。

在「公式」选项卡点击「公式求值」显示此公式的计算步骤,点击「求值」可以将此公式一步步进行求值计算。

我们可见B2单元格、C2单元格都是可以计算的日期单元格,文本d被鉴定为不可识别的文本。

我们找到问题所在后,修改公式中的文本d,就可以正常计算了。

我们可见公式运算结果为0,结果是错误的,那么公式错在哪里了呢?

使用「求值」将此公式一步步进行求值计算,此时就可以检查出来G4单元格的名字拼写错误。

由于名字搜索不到所以导致SUMIFS函数条件求和结果为0,将G4单元格修改正确就可以计算出正确的结果了。

IFNA函数 改变错误值#N/A

如果公式返回错误值 #N/A,则结果返回您指定的值;否则返回公式的结果。

语法

IFNA(value, value_if_na)

Value:用于检查错误值 #N/A 的参数。

Value_if_na:公式计算结果为错误值 #N/A 时要返回的值。

说明

如果 Value 或 Value_if_na 是空单元格,则 IFNA 将其视为空字符串值 ()。

如果 Value 是数组公式,则 IFNA 为 Value 中指定区域的每个单元格以数组形式返回结果。

IFERROR函数 自定义报错结果

可以使用 IFERROR 函数捕获和处理公式中的错误。

如果公式的计算结果为错误值, 则 IFERROR 返回您指定的值;否则, 它将返回公式的结果。

语法

IFERROR(value, value_if_error)

IFERROR 函数语法具有下列参数:

取值:必需,检查是否存在错误的参数。

value_if_error:必需,公式计算错误时返回的值。

计算以下错误类型: #N/A、#VALUE!、#REF!、#DIV/0!、#NUM!、#NAME?或 #NULL!。

说明

如果 value 或 value_if_error 是空单元格, 则 IFERROR 将其视为空字符串值 ()。

如果 value 是数组公式, 则 IFERROR 返回值中指定的区域中每个单元格的结果数组。

四川省
浏览 6611
1
2
分享
2 +1
2
1 +1
全部评论 2
 
wps新路
wps新路

WPS函数专家

跟着韩老师学习
· 重庆
1
回复
 
清华学弟任泽岩
清华学弟任泽岩

创作者俱乐部成员

这是一个非常经典的选题,感谢韩老师给他赋予了全新的生命!
· 浙江省
1
回复