提取不重复值,你还不会吗?学起来吧!方法2:多维引用法
你好,我是刘卓。欢迎来到我的公号,excel函数解析。今天接着昨天的案例,继续分享提取不重复值的第2种方法:多维引用法。这种方法也是找到第1次出现的姓名,然后将其提取出来。
多维引用的最大用处是可以代替辅助列,如果你一时理解不了多维引用,可以先用辅助列的方法来完成。
而且学习多维引用的时候,也可以和辅助列的公式来对比,这样更加容易理解多维引用形成的各区域,以及降维时各区域与条件的对应关系。
=INDEX(B:B,SMALL(IF(COUNTIF(OFFSET(B$3,,,ROW($1:$12)),B$3:B$14)=1,ROW($3:$14),4^8),ROW(A1)))&""
OFFSET(B$3,,,ROW($1:$12))这部分以B3为基点,行列不偏移,分别扩展1,2,3,···,12行,形成了由12个区域组成的多维引用。这个12个区域分别是B3、B3:B4、B3:B5、···、B3:B14。
COUNTIF(OFFSET(B$3,,,ROW($1:$12)),B$3:B$14)这部分用countif对多维引用进行降维运算,分别统计出多维引用的12个区域中对应销售员的个数,结果返回一个数组{1;1;1;2;1;2;1;2;3;3;2;2}。
多维引用各区域和条件的对应关系如下图G列和H列所示:也就是在B3:B3的区域中统计B3的个数,在B3:B4的区域中统计B4的个数,···,在B3:B14的区域中统计B14的个数。
其实countif降维后返回的结果和辅助列E列的结果是一样的,只不过形成了一个内存数组,从而可以免去辅助列。
而且多维引用的各区域和条件的对应关系与辅助列是一致的。辅助列是一个区域对应一个条件,而多维引用是多个区域同时对应多个条件。
IF(COUNTIF(OFFSET(B$3,,,ROW($1:$12)),B$3:B$14)=1,ROW($3:$14),4^8)这部分用if函数判断,如果countif返回的结果等于1,那么返回相应的行号,否则返回4^8。
接下来就和我们昨天说的步骤一样了,用small函数从小到大分别提取出各销售员第一次出现的行号,最后用index返回B列相应行的销售员。
=(COUNTIF(B$3:B3,B3)=1)+N(E2)
=IFNA(INDEX(B$3:B$14,MATCH(ROW(A1),E$3:E$14,)),"")
https://pan.baidu.com/s/19jYlJ4ReiuL1P02Nim90Gg