分享

提取不重复值,你还不会吗?学起来吧!方法2:多维引用法

 刘卓学EXCEL 2021-04-02

你好,我是刘卓。欢迎来到我的公号,excel函数解析。今天接着昨天的案例,继续分享提取不重复值的第2种方法:多维引用法。这种方法也是找到第1次出现的姓名,然后将其提取出来。

多维引用的最大用处是可以代替辅助列,如果你一时理解不了多维引用,可以先用辅助列的方法来完成。

而且学习多维引用的时候,也可以和辅助列的公式来对比,这样更加容易理解多维引用形成的各区域,以及降维时各区域与条件的对应关系。

下图还是昨天的案例,今天只分享提取不重复销售员的方法。在F2单元格输入下面的公式,按ctrl+shift+enter,向下填充。

=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列的结果是一样的,只不过形成了一个内存数组,从而可以免去辅助列。

而且多维引用的各区域和条件的对应关系与辅助列是一致的。辅助列是一个区域对应一个条件,而多维引用是多个区域同时对应多个条件。

从上图的辅助列中可以看出,结果等于1的,对应的销售员是第一次出现的,正好也是我们要提取的。

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列相应行的销售员。

如果你还是看不懂多维引用,可以用下面的辅助列法。添加辅助列E列,在E3单元格输入下面的公式,向下填充。

=(COUNTIF(B$3:B3,B3)=1)+N(E2)


然后在G3单元格输入下面的公式,向下填充,完成。

=IFNA(INDEX(B$3:B$14,MATCH(ROW(A1),E$3:E$14,)),"")

链接:

https://pan.baidu.com/s/19jYlJ4ReiuL1P02Nim90Gg

提取码:qznu

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多