分享

VLOOKUP提取不重复值,很难吗?巧用辅助列秒解!

 刘卓学EXCEL 2021-04-26
你好,我是刘卓。欢迎来到我的公号,excel函数解析。工作中有时需要提取不重复值,对于初学函数的小伙伴来说,复杂的数组公式难以理解。我们可以用辅助列的方法,通过vlookup函数实现提取不重复值的效果。 
-01-

辅助列+vlookup


下图左表记录的是各部门的员工信息,现在的要求是将不重复的部门提取出来,结果如G列所示。当然提取不重复值的方法有很多,我这里就用辅助列+vlookup的方法。
1)在A列添加辅助列,A3单元格输入公式=(COUNTIF(C$3:C3,C3)=1)+N(A2),向下填充,得到A列的结果。从A列的结果中可以看出,当C列的部门是第1次出现的时候,A列的数字分别为第1个1,第1个2,第1个3,以此类推……
2)在G3单元格输入公式=IFNA(VLOOKUP(ROW(A1),A$3:C$14,3,0),""),向下填充,完成。
vlookup第1参数为row(a1),也就是1,公式的意思是在A3:C14中查找首次出现的1,并返回第3列相应的"培训部";当公式向下填充时,row(a1)变为row(a2),也就是2,此时在A3:C14查找首次出现的2,并返回第3列相应的"销售部"以此类推……
当公式向下填充太多时,会产生错误值#N/A,最后用ifna处理值,返回空""。

-02-

辅助列

可能有些小伙伴对这个辅助列不太理解,我再来说说这个辅助列的意思。先来看=COUNTIF(C$3:C3,C3)这个公式,用countif统计C列的每个部门是第几次出现,第一次出现就为1,第二次出现就为2,以此类推……

实际上,不重复的部门就是第一次出现的,也就是数字为1对应的那些部门。这样就转化为昨天说过的一对多查询的问题了,将数字1对应的那些部门提取出来。

再来看=COUNTIF(C$3:C3,C3)=1这个公式,就是判断上一步的数字是否等于1,如果等于1,说明满足条件,返回true;否则返回false。
最后这个公式=(COUNTIF(C$3:C3,C3)=1)+N(A2),实际上是对满足条件的部门进行累加计数,就像vba代码中的n=n+1,如果条件满足就加1,不满足还是原来的数字。
链接:

https://pan.baidu.com/s/1AWkxTC7naNTkPX6LCfEaMA

提取码:etb1

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多