领导:报表里又出现#N/A, 是不是出错了?
我:不是的,是因为Vlookup没有找到数据,所以显示#N/A.
领导:#N/A是啥意思,看不懂。
我:#N/A是英文Not Available的意思,通俗的说就是查无此人。
领导:影响报表美观,在保留公式的同时,把#N/A去掉,我不想看到它。
大家在工作中,是不是经常遇到#N/A的情况?有没办法不显示#N/A, 而显示空白,或“没找到”,“不存在”,“查无此人”等?
答案:有办法。
下面介绍几种处理#N/A方法.
案例,
如下图,我们要查找员工的工号,部门,年薪,性别和年终奖。

根据前面文章学的知识,用一个Vlookup替代多个Vlookup的方式,在K2输入公式:
VLOOKUP($J2,$A:$F,MATCH(K$1,$A$1:$F$1,0),0),并向下,向右复制填充。
查找值$J2. 由于姓名的规律是列号不变,所以我们锁定列号,前面加$.
查找范围$A:$E. 我们用最大查找范围A列到F列,并锁定列号。
结果所在的列。我们使用Match函数动态查找。MATCH(K$1,$A$1:$F$1,0)
精准度。我们使用精准查找0.

数据源里的是"李连截",我们要找的是"李连杰",所以找不到,就会出现#N/A。如果我们不想显示#N/A ,而要显示“没找到”,怎么办?
第一种方法。Vlookup+if+ISNA.
判断函数ISNA
ISNA, 是英文Is Not Available的缩写。语法格式为:ISNA(值)
如下图,在B2输入=ISNA(A2), 并向下填充复制。A4是#N/A,所以返回的是True.

条件函数If
如下图,如果成绩大于60,就显示及格,否则显示不及格。
公式为:=IF(A2>60,"及格","没及格")
判断条件, A2>60, 这是一个逻辑值,
a. 如果成绩大于60就返回True,
b. 如果小于60就返回False.
"及格", 如果大于60就显示"及格"
"没及格", 如果小于60就显示"没及格"

If函数中的判断条件可以用ISNA()函数取代。
判断条件
ISNA(值)
ISNA函数中的值可以用Vlookup函数取代。
值
Vlookup(...)
将If, ISNA, Vlookup组合在一起,
=if(ISNA(Vlookup(...)) ,"没找到", Vlookup(...) )
回到刚才的案例,
在K2输入:
IF(ISNA(),"没找到",)

这是不是有点神奇呢? 没找到,不会再显示#N/A, 而是显示的"没找到".
如果有的朋友想显示"查无此人", 公式就改为
IF(ISNA(),"查无此人",)
如果有的朋友想显示空白, 公式就改为
IF(ISNA()," ",)
第二种方法。Xlookup.
X
Xlookup是新版 Excel才有的函数,其语法结构比Vlookup简单。
Xlookup的语法格式为:
英文语法格式=XLOOKUP(lookup_value,lookup_array,return_array,[if_not_found],[match_mode],[search_mode])
中文语法格式=XLOOKUP(查找值,查找列,结果列,如果没找到,查找精准度,搜索模式)
前面三个参数是必须参数,后面三个参数是可选参数。
其中的第四个参数"如果没找到", 就可以解决#N/A的问题。
我们将第一种方法的公式改为:
X
查找值J2
查找列A:A. 和Vlookup不一样,Xlookup只需要查找列A:A即可。Vlookup是查找范围,必须包含查找列和结果列。
结果列C:C. 工号所在列。
如果没找到,"没找到"。 如果没找到就显示"没找到".
Xlookup的公式,是不是比Vlookup简单多了?
Xlookup的弊端是不能和Match配合使用,Vlookup+Match可以设置一个公式,向下向右复制填充。但Xlookup没这个功能,所以,我们必须每列都设置一个格式。
同理,
X
X
X
X
注意,Xlookup只适用于新版Excel, 旧版Excel无法使用。
第三种方法。条件格式。如果是#N/A,就将字体颜色改为白色。
步骤1. 选择范围K:O列。
步骤2. 选择条件格式-->新建规则

步骤3. 选择新建格式规则中的最后一个“使用公式确定要设置格式的单元格”

步骤4. 输入公式=ISNA(K1).

步骤5. 并点击格式。将字体的演示设置为白色。

看看动态效果图。

你觉得哪种方法更好呢?
你还有其他的处理方法吗?
以后总会用得上,值得关注,收藏,点赞,转发。