原标题:这么多种Excel错误类型,你搞明白了吗?

使用Excel,尤其是公式,我们经常能遇到各种错误,你知道这些错误的含义吗?了解了为什么会产生这些错误,在调试公式时,我们才能快速地发现问题并纠正。今天就给大家一一介绍这些错误。

错误1: #N/A

这个是最常见的了,因为大家经常用Vlookup,找不到值时就返回这个#N/A。NA你可以理解为Not Available。这个错误通常表示找不到要求查找的内容。除了Vlookup,还有很多其他函数都可能返回#N/A错误,比如Hlookup,Lookup,Match等。

有时候明明数据区域中有这个值,但是Vlookup也找不到,返回#N/A错误,那我们检查一下是不是在数字列中查找文本或者文本列中查找数值(也就是查找值和目标区域个数据类型不一样,一个是文本,一个是数值),检查一下数据前后是否有空格等。

如果数据区域中包含#N/A错误值,那么用SUM求和时也会返回错误值。

使用=NA()函数也可以返回#N/A错误值。

这个#N/A错误有时候还挺有用,我们可能要特别地使用这个错误值,比如在Excel作图中用来填充0值。

如下图所示,我们用第一行数据作图,当遇到0值时,折线图就体现为降低到最低端,然后再升高的样式。

如果将0值替换为#N/A错误值,则图表就变成如下样式。

错误2:#DIV/0!

这个也比较常见,大家在计算增长百分比时经常会遇到,当遇到除以0或者除以空白单元格的公式时,显示这种错误。注意,空白单元格也当作0来处理了。这个记起来也不难,DIV可以理解为Divide的缩写,意思是除,后面带个0,总体上可以理解为除以0。

有时候我们可以利用这个#DIV/0!错误,看下面的示例。

公式如下:

=LOOKUP(1,0/(H6:H8=J2),I6:I8)

这个公式的作用是单条件查找。0/(H6:H8=J2)返回结果{#DIV/0!;0;#DIV/0!},Lookup数字1就找到返回结果中0相同位置的I6:I8的值。

错误3:#VALUE!

这种常见的就是在加减运算中包含了文本,比如运算中包含了不能自动转换成真正日期的文本、包含了汉字的文本、包含了空格的文本型数字、从网页上复制数字时带过来的特殊字符等等。用+、-、*、/ 等符号做运算,在遇到文本就会产生错误,我们可以改成用函数来计算,比如SUM函数可以忽略文本。

错误4:#REF!

这个错误想必是很多人都不愿意看到的,因为它代表公式已经失效了。这种通常是因为公式中引用的单元格被删除或者被其他单元格移动过来覆盖掉了(用鼠标选中一个单元格或单元格区域,移动鼠标到选中区域的边缘,鼠标指针变成四向箭头时,按住鼠标移动选中区域到公式引用的单元格或区域,则公式中就会产生#REF!错误)。假如不知道原来引用的单元格地址,可能就比较麻烦了,因为你得重新检查一下公式,将#REF!替换为正确的单元格地址。

除了删除或覆盖单元格区域外,还有几种情况可能出现#REF!错误。比如以下公式:

  • =VLOOKUP(C4,A9:B11,4,0)

  • =INDEX(A8:B11,3,3)

  • =INDIRECT("'[test.XLSX]Sheet1'!a1")

  • 前两个公式都试图查找超出范围的区域,从而产生#REF!错误。

    第三个公式引用关闭的工作簿,也会产生#REF!错误。

    错误5:#NAME?

    这个错误代码从字面意思也好理解,一个Name加一个问号,表示Excel在问你这是个什么名称呢?因为Excel它无法识别。

    可能引起这个错误的情况有:

  • 函数名称拼写错误;

  • 使用了不存在的自定义函数;

  • 使用了未定义的名称;

  • 公式中的文本常量前后缺少英文的双引号;

  • 区域引用拼写错误。

  • 举个例子说明,你在自己的电脑上设置了加载宏,使用了自定义函数CountColorIf,但是当你把文件发给别人后,别人电脑上没有设置这个加载宏和自定义函数,那么在对方那里就显示#Name?错误。

    错误6:#NUM!

    这个错误常见的情况是,给公式输入了一个错误的参数,比如需要数字的参数但是没有提供数字,或者输入了错误的参数。在迭代计算函数不能得出正确的结果时,也会返回#NUM!错误。

    错误7:#NULL!

    当对不相交的两个区域求交集运算时,就会产生这种错误。也就是说,假如两个区域没有重叠的区域,但是你使用了空格这个区域交集的运算符,用SUM来求和,就会返回#NULL!。

    错误8:######

    这个其实不属于错误值的一种,在这里列出来是因为很多人看到后觉得没有得到正确的结果,认为是一个错误。造成这种情况可能的原因:

  • 列太窄,显示不了日期、时间格式;

  • 负数的日期、时间;

  • 数字太大或太小,超出了单元格最大宽度;

  • 了解了他们怎么产生的,想必你也应该知道怎么去处理他们了吧?

    有时候我们想屏蔽错误,可以用IfError或者IsError来处理。

    IfError 只有两个参数,第一个参数是正常的公式,第二个参数表示当第一个参数的公式返回错误值时,最终IfError会返回什么内容。

    IsError 只有一个参数,就是判断这个公式的返回结果是不是错误值。所以通常要加If来判断,从而返回想要的结果。

    IsError可以识别 #N/A、#VALUE!、#REF!、#DIV/0!、#NUM!、 #NAME? 或 #NULL!这些错误类型(注意上文中最后一个样式######不属于错误类型中的一种),注意需要跟IsErr区分。IsErr可以识别除#N/A外的错误值。

    所以我们只需要记住IsError和IfError就可以了。

    本文由公众号 Excel轻松学 友情推荐 返回搜狐,查看更多

    责任编辑:

    声明:该文观点仅代表作者本人,搜狐号系信息发布平台,搜狐仅提供信息存储空间服务。