总结篇--提取不重复值的技巧集合
点击上方
蓝色
文字 关注我们吧!
送人玫瑰,手有余香,请将文章分享给更多朋友
动手操作是熟练掌握EXCEL的最快捷途径!
日常工作中,我们经常会遇到数据提取方面的问题,今天我就帮大家汇总一下有关提取不重复值的技巧!
单列提取经典组合
在以前的帖子中我也多次介绍过,提取不重复值的技巧中有一个经典的函数组合:INDEX函数+SMALL函数+IF函数+MATCH函数组合。
这么长的组合,其威力一定是巨大无比的。如下图。
在单元格C2中输入“=IFERROR(INDEX($A$2:$A$17,SMALL(IF(MATCH($A$2:$A$17,$A$2:$A$17,0)=ROW($A$2:$A$17)-1,ROW($A$2:$A$17)-1),ROW()-1),0),"")”并CTRL+SHIFT+ENTER三键回车,向下拖曳即可。
具体函数公式的介绍,请参看帖子你会使用【INDEX函数】吗?
同样地,OFFSET函数+SMALL函数+IF函数+MATCH函数组合也是可以提取不重复清单的。这里就不再详细解释了,具体的过程可以参看帖子最全的OFFSET函数应用集合,收藏这一篇就够了。
COUNTIF函数
有时候是不是会觉得上面那个经典组合函数太多了,记不住?没关系,下面这个技巧来看看!
在单元格G2中输入“=INDEX(C:C,1+MATCH(,COUNTIF($G$1:G1,$C$2:$C$18),))&""”,CTRL+SHIFT+ENTER三键回车,并向下拖曳即可。
思路:
在$G$1:G1这样一个动态区域内统计单元格区域$C$2:$C$18(为什么是C18?稍后解释)中的数据出现的个数。当没有出现时,返回值为0
利用MATCH函数来搜索“0”在这个内存数组中第一次出现的位置
1+MATCH(,COUNTIF($G$1:G1,$C$2:$C$18)部分是由于MATCH函数返回的位置是在$C$2:$C$18这个区域中。相对于C列的位置,需要加上“1”
利用INDEX函数返回不重复的清单
利用$G$1:G1这样一个动态区域,当向下拖曳时,区域不断地扩大,凡是在这个区域中出现的清单,COUNTIF函数的返回值就不会是“0”,MATCH函数就不会提取到其位置,因此也不会被重复提取
单元格区域$C$2:$C$18是为了屏蔽错误值。实际上公式中写成$C$2:$C$17也是可以的,只不过就需要利用IFERROR函数来屏蔽错误值了
多列提取不重复清单
下面我们增加一些难度。如何在多列中提取不重复的清单呢?
在单元格E2中输入“=INDIRECT(TEXT(MIN((COUNTIF($E$1:E1,$A$2:$C$9)+($A$2:$C$9<=""))/1%%+ROW($A$2:$C$9)/1%+COLUMN($A$2:$C$9)),"r0c00"),)&""”,CTRL+SHIFT+ENTER三键回车后向下拖曳即可。
是不是有些晕了?哈哈,我也有点晕,不过没关系,记住会套用即可!
其实对于大多是朋友来讲,提取多列不重复清单根本不需要写上面如此复杂的公式。利用EXCEL提供的数据透视表就可以轻松完成!
数据透视表提取出多列不重复清单
首先,我们在数据区域最左侧插入一列。因为最左侧列中不能包含要提取的姓名。
然后按下ALT+D,再按P键,调出透视表向导。点选“多重合并计算数据区域”
默认“创建单页字段”,选择数据区域。如下图。
完成后在数据透视表的字段列表中,依次将“行”,“列”和“页1”拖曳到字段列表外;将“值”拖到行标签。
完成后,数据透视表是这个样子的。
删除行标签和总计后,就是不重复清单啦!
-END-
推荐阅读:
戳原文,更有料!免费模板文档!