倒序筛选出不重复的记录,结果以倒序排列

同学们,大家好。昨天说了两种去重的套路,一个是查找第一次出现的,一个是查找最后一次出现的。但是它们返回的结果都是从上到下排列的。今天还是讲解倒序查找不重复的记录,并且返回的结果还是倒序排列,也就是从下往上的顺序。

还是看下数据源和最后的效果图吧。和昨天的数据源一样,还是北上广深4个城市,从下往上查找不重复的记录,并且输出的结果也是按从下往上的顺序,如CDEF列所示。

其实,和昨天的思路是差不多的,只不过返回的顺序不同。在C2单元格输入公式=IFERROR(INDEX(A:A,LARGE(IF(FREQUENCY(ROW(A:A),MATCH(A$2:A$15,A$2:A$15,)+1/ROW($2:$15)),ROW($2:$16)),ROW(A2))),""),按三键结束,向下填充。

这个公式和昨天的公式基本上是一样的,只不过将small改为large,然后从第2个最大值开始提取。

首先来看=FREQUENCY(ROW(A:A),MATCH(A$2:A$15,A$2:A$15,)+1/ROW($2:$15))这部分,它返回的结果如下图B列所示,可以看到非0值对应的就是最后1次出现的记录,而且它的结果元素会比第2参数多出1个元素,也就是最后的1048570。

对应的位置找到了,然后就用if返回对应的行号,结果如上图C列所示。也就是=IF(FREQUENCY(ROW(A:A),MATCH(A$2:A$15,A$2:A$15,)+1/ROW($2:$15)),ROW($2:$16))这个公式。

由于要倒序排列,所以提取行号要从大到小提取,但是第1个最大值16不是我们要的,所以从第2个最大值开始提取,然后第3个,第4个。。。,也就是15,14,13,6,公式就是这部分=LARGE(IF(FREQUENCY(ROW(A:A),MATCH(A$2:A$15,A$2:A$15,)+1/ROW($2:$15)),ROW($2:$16)),ROW(A2))。

然后就用index返回对应的内容,当提取到第5个最大值时,会出错,因为没有第5个数字了,所以最后用iferror处理下错误。

再来看下D列的公式,在D2单元格输入公式=IFNA(LOOKUP(1,0/(COUNTIF(D$1:D1,A$2:A$15)=0),A$2:A3),""),不用三键,向下填充。这个公式用的是动态区域。所以不同单元格的时候,区域是会变化的。

第1次是D2单元格,countif的区域是D1,条件是A$2:A$15。意思就是在D1单元格查找有没有A$2:A$15的内容。第1次肯定全部都没有,返回的结果都为0,如下图B列所示。此时我们要返回最后1个0对应的城市。所以要用countif返回的结果等于0,然后再用lookup返回对应的城市。此时D2的结果就是"上海"。

向下填充到D3单元格时,此时countif的区域变为D1:D2,条件还是A$2:A$15,意思就是在D1:D2中统计A$2:A$15的个数,结果如下图所示。由于D1:D2中包含"上海",所以上海的个数为1。但因为我们还是要找最后1个0对应的城市,所以就相当于把"上海"排除出去了,也就是去重了。此时D3返回的结果为"广州"。

剩下的单元格,大家自己按F9查看。当把所有的城市取出来后,再下拉就会出错,所以用ifna处理下错误。

E列的公式:在E2单元格输入公式=IFNA(LOOKUP(1,0/ISNA(MATCH(A$2:A$15,E$1:E1,)),A$2:A3),""),向下填充。

F列的公式:在F2单元格输入公式=LOOKUP(,0/FREQUENCY(1,ISNA(MATCH(A$2:A$15,F$1:F1,))+1/ROW($2:$15)),A$2:A3)&"",向下填充。

链接:

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

提取码:u3px

(0)

相关推荐

  • 老板分分钟主动加薪!超实用Excel函数你知多少

    [PConline 技巧]刚入职场的小伙伴,很多时候都要面临业务与环境的双重考验.如何在众人间脱颖而出,成为夜空中最亮的那个仔?今天这篇文章,将带您快速一览人事岗必学的几招Excel函数.难度不高,却 ...

  • 精通Excel数组公式022:提取唯一值列表并排序(续)

    使用公式对数字进行排序 下图12展示了两个对数字进行排序的公式.使用SMALL/ROWS函数从小到大排序,使用LARGE/ROWS函数从大到小排序. 图12 使用辅助列公式对基于数字列的记录进行排序 ...

  • 筛选出不重复的记录(正序和逆序)

    那么我们来看下数据源.如下图所示,A列是源数据,有北上广深4个城市,它们有重复的,现在要筛选出不重复的记录,结果如CD两列所示.这是筛选出第1次出现的城市,也是正向查询. 下图是筛选最后1次出现的记录 ...

  • 如何从Excel中筛选出重复数据并合并?

    例如: A 1 2 B 3 4 C 5 6 A 7 8 B 9 10 D 11 12 要将第一栏重复的数据筛选出来,并将后面的数据合并,希望得到的结果是: A 8 10 B 12 14 该如何实现这一 ...

  • 筛选出每个人最高星级的记录(升级版)

    今天就来一个升级版的问题,筛选出每个人最高星级的记录.如下图所示,左表是数据源,右表是我们想要得到的效果.姓名我就用ABCD代替了,以姓名A为例说明一下题意:A对应的星级有6颗星,3颗星,4颗星,2颗 ...

  • 筛选出每个人最高分的记录(二)

    大家好,关于昨天的问题,今天来说另外一种方法,主要用的是frequency和match函数.最近我挺喜欢用frequency的,尽管我对它的掌握是有限的.一题多解可以拓展思维,如果你有心想学函数,不妨 ...

  • 筛选出每个人最高分的记录(一)

    大家好,好久没更新文章了.最近这段时间没有动力,感觉爱也爱不了,恨也恨不了,做题也做不出,一直处于挣扎的状态,但又挣扎不出来,深深地无力感,受挫感.算了,那就不挣扎了,接受有些事情和有些题目自己目前是 ...

  • Excel如何在大量数据中快速筛选出重复项?

    Excel如何在大量数据中快速筛选出重复项?在大量的数据当中筛选重复的数据,单靠人工是很费时费力的,而且可能还会有一些遗漏,今天小Q来给您分享一个在大量数据中快速筛选重复数据的小技巧. 1.选中我们要 ...

  • 基础篇--利用条件格式筛选出重复值

    送人玫瑰,手有余香,请将文章分享给更多朋友 动手操作是熟练掌握EXCEL的最快捷途径! 关于筛选重复值的话题我们谈论过多次了,可以利用数据透视表来完成,也可以利用公式来完成,高大尚一点的还可以利用PO ...

  • 第642期 | Excel技巧:如何快速筛选出不完整的行记录?

    --正文开始-- 什么是不完整行记录?下图中箭头所指的每一行就是不完整的记录行. (不完整行记录) 那我们怎能快速的筛选出来呢?这也是一位小伙伴在微信中提问.但直接筛选似乎无法直接筛选出来. 要实现这 ...

  • 这一招轻松搞定“合并单元格筛选时只筛选出第一条记录”的难题

    最近推送的五篇文章: 如何批量向下填充空白单元格?表哥表妹必会技巧! 如何正确地提问才能得到群友的帮助? 这款免费对账软件十秒钟对完一万条,秒杀收费软件, Excel冷门但非常好用的功能②:用视图管理 ...