发布网友 发布时间:2022-04-21 07:50
共1个回答
热心网友 时间:2022-06-21 10:27
在利用Excel完成任务的过程中,公式被使用得非常多,能够解决各种各样的问题。但是,这并不意味着公式的运用总会一帆风顺,如果我们运用函数和公式的时候稍微不仔细,公式就可能返回一些奇怪的错误代码,这可不是我们希望得到的结果。
看到这些奇怪的错误代码,有的朋友可能会手忙脚乱,甚至感到烦躁。其实,任何错误均有它内在的原因,下面我们就通过实例剖析,和大家探讨根据公式返回错误值的代码识别错误的类型和原因,以及相应的处理方法,帮助朋友们轻松地应对各种常见错误。
一、 #DIV/0! 错误
常见原因:如果公式返回的错误值为“#DIV/0!”,这是因为在公式中有除数为零,或者有除数为空白的单元格(Excel把空白单元格也当作0)。
处理方法:把除数改为非零的数值,或者用IF函数进行控制。具体方法请参见下面的实例。
具体实例:如图1的所示的工作表,我们利用公式根据总价格和数量计算单价,在D2单元格中输入的公式为“=B2/C2”,把公式复制到D6单元格后,可以看到在D4、D5和D6单元格中返回了“#DIV/0!”错误值,原因是它们的除数为零或是空白单元格。
图1
假设我们知道“鼠标”的数量为“6”,则在C4单元格中输入“6”,错误就会消失(如图2)。
图2
假设我们暂时不知道“录音机”和“刻录机”的数量,又不希望D5、D6单元格中显示错误值,这时可以用IF函数进行控制。在D2单元格中输入公式 “=IF(ISERROR(B2/C2),"",B2/C2)”,并复制到D6单元格。可以看到,D5和D6的错误值消失了,这是因为IF函数起了作用。整个公式的含义为:如果B2/C2返回错误的值,则返回一个空字符串,否则显示计算结果。
图3
说明:其中ISERROR(value)函数的作用为检测参数value的值是否为错误值,如果是,函数返回值TRUE,反之返回值FALSE.。
二、 #N/A 错误
常见原因:如果公式返回的错误值为“#N/A”,这常常是因为在公式使用查找功能的函数(VLOOKUP、HLOOKUP、LOOKUP等)时,找不到匹配的值。
处理方法:检查被查找的值,使之的确存在于查找的数据表中的第一列。
具体实例:在如图4所示的工作表中,我们希望通过在A10单元格中输入学号,来查找该名同学的英语成绩。B10单元格中的公式为 “=VLOOKUP(A10,A2:E6,5,FALSE)”,我们在A10中输入了学号“107”由于这个学号,由于在A2:A6中并没有和它匹配的值,因此出现了“#N/A”错误。
图4
如果要修正这个错误,则可以在A10单元格中输入一个A2:A6中存在的学号,如“102”,这时错误值就不见了(如图5)。
图5
说明一:关于公式“=VLOOKUP(A10,A2:E6,5,FALSE)”中VLOOKUP的第四个参数,若为FALSE,则表示一定要求完全匹配lookup_value的值;若为TRUE,则表示如果找不到完全匹配lookup_value的值,就使用小于等于 lookup_value 的最大值。
说明二:出现“#N/A”错误的原因还有其他一些,选中出现错误值的B10单元格后,会出现一个智能标记,单击这个标记,在弹出的菜单中选择“关于此错误的帮助”(如图6),就会得到这个错误的详细分析(如图7),通过这些原因和解决方法建议,我们就可以逐步去修正错误,这对其他的错误也适用。
图6
图7
三、 #NAME? 错误
常见原因:如果公式返回的错误值为“#NAME?”,这常常是因为在公式中使用了Excel无法识别的文本,例如函数的名称拼写错误,使用了没有被定义的区域或单元格名称,引用文本时没有加引号等。
处理方法:根据具体的公式,逐步分析出现该错误的可能,并加以改正,具体方法参见下面的实例。
具体实例:如图8所示的工作表,我们想求出A1:A3区域的平均数,在B4单元格输入的公式为“=aveage(A1:A3)”,回车后出现了 “#NAME?”错误(如图8),这是因为函数“average”错误地拼写成了“aveage”,Excel无法识别,因此出错。把函数名称拼写正确即可修正错误。
图8
选中C4单元格,输入公式“=AVERAGE(data)”,回车后也出现了“#NAME?”错误(如图9)。这是因为在这个公式中,我们使用了区域名称data,但是这个名称还没有被定义,所以出错。
图9
改正的方法为:选中“A1:A3”单元格区域,再选择菜单“名称→定义”命令,打开“定义名称”对话框,在文本框中输入名称“data”单击“确定”按钮(如图10)。
图10
返回Excel编辑窗口后,可以看到错误不见了(如图11)。
图11
选中D4单元格,输入公式“=IF(A1=12,这个数等于12,这个数不等于12)”,回车后出现“#NAME?”错误(如12),原因是引用文本时没有添加引号。
图12
修改的方法为:对引用的文本添加上引号,特别注意是英文状态下的引号。于是将公式改为“=IF(A1=12,"这个数等于12","这个数不等于12")”(如图13)。
图13
四、 #NUM! 错误
常见原因:如果公式返回的错误值为“#NUM!”,这常常是因为如下几种原因:当公式需要数字型参数时,我们却给了它一个非数字型参数;给了公式一个无效的参数;公式返回的值太大或者太小。
处理方法:根据公式的具体情况,逐一分析可能的原因并修正。
具体实例:在如图14所示的工作表中,我们要求数字的平方根,在B2中输入公式“=SQRT(A2)”并复制到B4单元格,由于A4中的数字为“-16”,不能对负数开平方,这是个无效的参数,因此出现了“#NUM!”错误。修改的方法为把负数改为正数即可。
图14
五、 #VALUE 错误
常见原因:如果公式返回的错误值为“#VALUE”,这常常是因为如下几种原因:文本类型的数据参与了数值运算,函数参数的数值类型不正确;函数的参数本应该是单一值,却提供了一个区域作为参数;输入一个数组公式时,忘记按Ctrl+Shift+Enter键。
处理方法:更正相关的数据类型或参数类型;提供正确的参数;输入数组公式时,记得使用Ctrl+Shift+Enter键确定。
具体实例:如图15的工作表,A2单元格中的“壹佰”是文本类型的,如果在B2中输入公式“=A2*2”,就把文本参与了数值运算,因此出错。改正方法为把文本改为数值即可。
图15
图16中,在A8输入公式“=SQRT(A5:A7)”,对于函数SQRT,它的参数必须为单一的参数,不能为区域,因此出错。改正方法为修改参数为单一的参数即可。
图16
如图17的工作表,如果要想用数组公式直接求出总价值,可以在E8单元格中输入公式“{=SUM(C3:C7*D3:D7)}”,注意其中的花 括号不是手工输入的,而是当输入完成后按下Ctrl+Shift+Enter键后,Excel自动添加的。如果输入后直接用Enter键确定,则会出现 “#VALUE”错误。
图17
修改的方法为:选中E8单元格后激活公式栏,按下Ctrl+Shift+Enter键即可,这时可以看到Excel自动添加了花括号(如图18)。
图18
六、 #REF! 错误
常见原因:如果公式返回的错误值为“#REF!”,这常常是因为公式中使用了无效的单元格引用。通常如下这些操作会导致公式引用无效的单元格:删除了被公式引用的单元格;把公式复制到含有引用自身的单元格中。
处理方法:避免导致引用无效的操作,如果已经出现错误,先撤销,然后用正确的方法操作。
具体实例:如图19的工作表,我们利用公式将代表日期的数字转换为日期,在B2中输入了公式“=DATE(LEFT(A2,4),MID(A2,5,2),RIGHT(A2,2))”并复制到B4单元格。
图19
这时如果把A2:A4单元格删除,则会出现“#REF!”错误(如图20),这是因为删除了公式中引用的单元格。
图20
先执行“撤消 删除”命令,然后复制B2:B4单元格区域到A2:A4,也会出现“#REF!”错误(如图21),这是因为把公式复制到了含有引用自身的单元格中。
图21
由于这时已经不能撤销,所以我们先把A2:A4中的数据删除,然后设置单元格格式为“常规”,在A2:A4中输入如图19所示的数据。
为了得到转换好的日期数据,正确的操作方法为:先把B2:B4复制到一个恰当的地方,如D2:D4,粘贴的时候执行选择性粘贴,把“数值”粘贴过去。这时D2:D4中的数据就和A列及B列数据“脱离关系”了,再对它们执行删除操作就不会出错了(如图22)。
图22
说明:要得到图22的效果,需要设置D2:D4的格式为“日期”。
七、 #NULL! 错误
导致原因:如果公式返回的错误值为“#NULL!”,这常常是因为使用了不正确的区域运算符或引用的单元格区域的交集为空。
处理方法:改正区域运算符使之正确;更改引用使之相交。
具体实例:如图23所示的工作表中,如果希望对A1:A10和C1:C10单元格区域求和,在C11单元格中输入公式“=SUM(A1:A10 C1:C10)”,回车后出现了“#NULL!”错误,这是因为公式中引用了不相交的两个区域,应该使用联合运算符,即逗号 (,)。
图23
改正的方法为:在公式中的两个不连续的区域之间添加逗号,改正后的效果为图24.
图24
关于Excel公式常见错误的处理方法就介绍到这里。文中选用的实例都是平时出现最多的情况,请大家注意体会。文中图6提到的帮助更正错误的智 能标记非常有用,如果利用介绍的方法都还未解决问题时,可以借助它进一步的分析。总之,只要思路正确,耐心仔细,Excel的公式错误最后就会被一一“歼 灭”。