明明是空值,VLOOKUP非要返回个0,搞得同事头都大了
文章标签:
vlookup不出结果只出公式
用VLOOKUP查找时,如果原数据中的数据为空,VLOOKUP返回结果会变为0:
=VLOOKUP(D2,A:B,2,0)
空值和0虽然都能用"啥也没有"来解释,但并不是所有场合都能相互替换。
有没有办法让VLOOKUP的结果仍然保持空值呢?
VLOOKUP连接空值
=VLOOKUP(D2,A:B,2,0)&""
这是常用方法,在公式的后面连接一个空值将数字转换为文本型数字。注意,双引号中什么都不要放,不要去敲空格。
明显的缺陷是文本型数字不能直接用于求和,此时如果对它们运用SUM函数,结果为0.
搭配IFERROR
如果必须要正常数字,可以在VLOOKUP前加上一个双减号再把文本型数字转换为正常数字:
=--(VLOOKUP(D2,A:B,2,0)&"")
但新的问题又发生了,双减号操作只对文本型数字有效,对空值操作时会返回错误值,于是再用IFERROR将错误值转换为空:
=IFERROR(--(VLOOKUP(D2,A:B,2,0)&""),"")
IF判断
IF判断,如果VLOOKUP结果为0,则输出空,否则输出VLOOKUP结果:
=IF(VLOOKUP(D2,A:B,2,0)=0,"",VLOOKUP(D2,A:B,2,0))
公式略长,但好在逻辑简单,也能很好的解决问题。
TEXT指定格式
TEXT是专业的格式控制函数:
=TEXT(VLOOKUP(D2,A:B,2,0),"0;-0;")
这个公式的意思是正数和负数正常显示,0则显示为空。
但它也有个缺陷,当数据中0和空值同时存在时,统统返回空值,如黄色所示数据。
空值返回0的情况在XLOOKUP,HLOOKUP,OFFSET甚至INDEX+MATCH等查找引用类函数中都存在,以上解决方案同样实用。