银河飞雪 发表于 2007-9-10 12:49:21

用函数搞定Excel的错误信息“#N/A”

办公室小王在使用VLOOKUP函数制作试卷时,遇到了一个小问题。要求输入“机号”时,能自动生成考生“姓名”。“机号”和对应的考生“姓名”在“试卷选项”表A2:B22区域中,如图1所示。于是小王使用查询函数,在“考生答案”工作表B3单元格中输入公式:=VLOOKUP(A3,试卷选项!$A$2B$22,2,FALSE),然后,向下拖动复制公式。这样当A列单元格输入“机号”时在B列单元格中就会产生考生“姓名”。可是公式复制后却出现了错误信息“#N/A”,如图2所示。小王仔细检查公式,结果公式显示无误。这到底是什么原因呢?
原来“#N/A”表示在函数或公式中没有可用数值时产生的错误信息。在本例中,如果需要查询的数值(“机号”)为空白或输入的“机号”不存在,“姓名”列均会返回“#N/A”错误。如果输入正确的查找值,“#N/A”错误信息将被公式返回结果所代替。虽然这并不影响公式的使用,但却不是很美观,那么如何删除这些错误信息又不影响公式使用呢?这就涉及到IF函数和ISNA函数的使用。

  ISNA函数用于测试数值类型,如果测试值为错误值#N/A,则返回TRUE,否则返回FALSE。语法为:ISNA(value),其中value为测试值,可以为引用单元格、公式或数值的名称等。根据以上分析,将B3单元格中公式改为:= IF(ISNA(VLOOKUP(A3,试卷选项!$A$2B$22,2,FALSE)),"",VLOOKUP(A3,试卷选项!$A$2B$22,2,FALSE))。该公式含义为:如果测试的公式结果为TRUE即#N/A,则B3单元格值返回为空白,否则为公式查询结果。然后,将B3单元格公式向下拖动复制到相应单元格区域。这样,B列就不存在令人讨厌的错误信息“#N/A”了。

  友情提示:用同样的方法,使用条件判断函数IF和信息函数ISERROR可以将任何错误值包括:“#N/A”、“#VALUE? ”、“#REF? ”、“#DIV/0? ”、“#NUM? ”等删除。ISERROR函数表示若测试值为任何错误值时,返回TRUE,否则返回FALSE。

虚心的人 发表于 2009-9-17 00:50:47

很实用的小知识,感谢分享。。。。。。。。。。
页: [1]
查看完整版本: 用函数搞定Excel的错误信息“#N/A”