使用VLOOKUP遇到的问题

来源:百度知道 编辑:UC知道 时间:2024/06/27 21:54:57
看下面A B两列姓名。从B列中找出A列中有的姓名,显示在C列。
甲 戊 甲
乙 丙 #N/A
丙 甲 丙
丁 #N/A
戊 戊
我使用的函数为 C1 =VLOOKUP(A1,$B$1:$B$3,1,FALSE)
问题1:上面是显示相同数据。如果我想显示不同的数据,即直接(注意是直接)在C列中显示出B列中没有的数据(与上面相反的结果),即这样的结果:
甲 戊
乙 丙 乙
丙 甲
丁 丁

如何使用函数?

问题2:

甲 乙 丁
乙 戊



当我把查找的范围变为多列时,即在B列、C列中查找相同数据,如何操作?
我在D1输入 =VLOOKUP(A1,$B$1:$C$2,1,FALSE)结果为
甲 乙 丁 #N/A
乙 戊 乙
丙 #N/A
丁 #N/A
戊 #N/A
如果我在D1输入=VLOOKUP(A1,$B$1:$C$2,2,FALSE)结果为
甲 乙 丁 #N/A
乙 戊 丁
丙 #N/A
丁 #N/A
戊 #N/A
怎么没有 戊 ?
第一个问题的间接方法我会。将所有的N/A排序就OK了。
我想直接得到结果:即如何提取两列数据中不同的部分?

第一个问题答复:
两列相同——直接在C1输入公式“=IF(COUNTIF($B$1:$B$3,A1)>=1,A1,"")”;

两列不同——直接在D1输入公式“=IF(COUNTIF($B$1:$B$3,A1)>=1,"",A1)”,公式向下填充,即可。

第二个问题的答复:
直接在D1输入公式“=IF(COUNTIF($B$1:$C$2,A1)>=1,A1,"")”,公式向下填充,OK!

使用vlookup一次实现不太可能,下面给你编了个公式:

=INDEX(a:a,SMALL(IF(COUNTIF($b$1:$b$10,$a$1:$a$10)=0,ROW($1:$10),65536),ROW(1:1)))&""

上面公式假设数据为10行,自行更改即可,可以解决你的第一个问题,放入数据以外任意一个单元格(比如c1),按三个键ctrl+shift+enter结束(数组公式),向下拖拉,既可以得到所有的不重复的数据

第二个问题只需要经上面的$b$1:$b$10改成$b$1:$c$10,其他不变,方法一样

问题1:=IF(COUNTIF($B$1:$B$5,A1)=0,A1,"")
问题2:你要的结果就是有没有,找回的值其实就是它本身,换个思维,用以下函数:
=IF(COUNTIF($B$1:$C$2,A1)>=1,A1,"")