要处理的问题类型,如图1所示:
图1
图1中有两列数据,如何快速识别出两列的相同项,并提取出来。
下边猫哥就教你们怎么装×
:
同样,高阶的装×行为需要高阶的技能,此处就需要利用数组,能否熟练应用数组,是一个excel猎手进1阶的标志。
此次共要达到如图2所示的3种效果:
图2
第1种:提取出左列独有的项目
第2种:提取出右列独有的项目
第3种:提取出双边都有的项目
第1种解答:提取出左列独有的项目
在E3单元格中输入公式(同时按Ctrl shift enter键,然后下拉)
=INDEX(B:B,SMALL(if(COUNTIF(C:C,$B$3:$B$22)=0,ROW($B$3:$B$22),1000), ROW(A1)))&""
公式解析:
先拆:
第1层:index(),也是最外边的一层
第2层:small()
第3层:if()
第4层:countif()最里边的一层
从里到外:
countif函数,COUNTIF(C:C,$B$3:$B$22)=0,这里即用到数组,即c:c是备查找的区域,$B$3:$B$22是要查找的目标值组合,此处用数组代替以前你们常用的单个单元格的值,即判断数组$B$3:$B$22中的每一个单元格的值在区域C:C中是否有数,即如果都没有,则返回false,因为false参与计算是值为0。
注意,看黑板,重点来了
数组的一个特性就是逐一判断,比如上边提到的这个公式:
COUNTIF(C:C,$B$3:$B$22)=0,即是先判断b3单元格1猫在c列中是否有对应的值,如果有则判断一次,同时if函数也判断一次,返回值集合见图3: