在Excel的函数计算中,如果一不小心,就可能会出现计算错误,比如#DIV/0!、#N/A、#VALUE!等。只有搞清楚这些错误是什么意思,才能在使用过程中更好地进行规避。
一、#DIV/0!错误。
当公式中的除数为0或者空值时,就会出现此错误,比如在下图中C1单元格输入公式=A1/B1后向下填充,会发现C1和C5单元格的计算结果为#DIV/0!错误,因为这两个单元格公式中除数为0。
二、#VALUE!错误。
加减乘除运算中的包含文本,会出现此错误,但是sum等运算函数会忽略非数值。比如输入公式=1+c等,所以在Excel中要明确区分日期格式、文本格式和数值格式等。
比如下图中,A1+A2单元格可以计算出正确的结果,但是A1+A2+A3就会出现#VALUE!错误,因为A1和A2单元格中都是数值,人民币符号是利用单元格格式设置的。而A3中的人民币符号是手工输入的,所以A3单元格其实是文本格式。
此外,数组函数没有按下Ctrl+shift+enter可能也会出现此错误。
三、#REF!错误。
引用单元格无效时,会出现此错误,比如删除公式中的单元格。
如下图所示,E2单元格公式为=SUMPRODUCT(C2:C21,D2:D21),如果把E2单元格复制粘贴到C23,那么C23的公式变成了=SUMPRODUCT(A23:A42,B23:B42),因为复制粘贴时公式也会相应变化。
但是把E2单元格复制粘贴到C22单元格时,公式就变成了=SUMPRODUCT(#REF!,A23:A42),出现了#REF!错误,因为A列数据前面没有单元格,引用的单元格无效。
同样,如果直接删除C列单元格,E2单元格也会出现#REF!错误。因为E2单元格公式中包含C列数据,C列数据删除就引用单元格自然无效了。
四、#NAME!错误。
一般在输入函数名称错误时会出现此错误,比如输入=ab或者=vloolup等,因为Excel中没有这些函数。
五、#N/A错误。
这个错误可以理解成找不到数据。最常见的地方就是各种查找函数了,比如vlookup函数。
在下图中,在G2单元格中输入函数=VLOOKUP(F2,B1:D20,2,0)后,可以查找到成绩为78,但是往下拖动的时候,G4单元格就会出现#N/A错误,原因就是向下拖动后G4单元格中公式变成了=VLOOKUP(F4,B3:D22,2,0),F4单元格不在查找范围B3:D12区域内了,自然就找不到数据了。其实只要把B2单元格的公式改成=VLOOKUP(F2,$B$1:$D$20,2,0),使区域$B$1:$D$20查找的范围保持不变,然后向下拖动,G4单元格就不会出错了。
再比如根据刘邦在B1:C20单元格区域中查找数据,即使公式正确,但是B1:C20区域中本来就没有刘邦这个人,也会出现找不到数据的错误值#N/A了。
此外,如果vlookup函数缺少必要的参数,也会出现#N/A错误。
六、#NUM!错误。
公式中包含无效数值,比如=SQRT(-2),负数不能开平方,会出现此错误。
数值太大或者太小,超出Excel表范围也会出现此错误。
同负数开平方一样,在下图中的C2单元格中输入函数=CEILING(A2,-2)后,会出现#NUM!错误。因为这个函数表示向上舍入第二个参数的倍数,返回的结果肯定大于32,而第二个参数-2的倍数仍然是负数,肯定不会大于32,计算过程和参数产生冲突,就会出现#NUM!错误。
七、#NULL!错误。
出现此错误原因是运算中不连续区域选择了不正确的连接符。
如下图所示,在输入函数=SUM(C2:C6 C12:C16)后,因为两个不连续的区域之间没有使用逗号分隔,就会出现计算错误。
如何解决这些错误?
如果要忽略错误,可以点左上角的感叹号来查看错误、忽略错误、查看帮助等。
如果想把错误值转换为空值或者其他特定值,可以使用ifna或者iferror函数。
比如在下图中,把#DIV/0错误转化为空值,则输入函数=IFERROR(C1,””)即可,如果把错误值转化为“无”,输入函数=IFERROR(C1,”无”)就可以了。
这就是本文介绍的运算出错的情形,感谢阅读。