分享

MATCH函数+FREQUENCY函数,去重、提取一步到位!

 EXCEL应用之家 2023-02-22 发布于上海


送人玫瑰,手有余香,请将文章分享给更多朋友

动手操作是熟练掌握EXCEL的最快捷途径!

【置顶公众号】或者【设为星标】及时接收更新不迷路



小伙伴们好,今天要和大家分享一道数据查找题目。这道题目用到了MATCH函数和FREQUENCY函数的常用技巧,因此这里和大家一起复习一下。

题目是这样的:



按要求提取每种长度的最后一个入库和出库时间。这道题目其实分为两部分,首先要提取不重复清单,这个我们有很多种方法;其次要按要求提取到对应的日期。


01

先来看看如何提取不重复请安。我们可以使用INDEX+SMALL+IF+MATCH+ROW的方法,但下面要介绍的这个方法也很巧妙。



在单元格E2中输入公式“=IFNA(INDEX(A:A,1+MATCH(,COUNTIF(E$1:E1,A$2:A$12),)),"")”,三键回车并向下拖曳即可。

思路:

  • COUNTIF(E$1:E1,A$2:A$12)部分,在动态区间E$1:E1中统计单元格区域A$2:A$12中数据的个数。当区间是E$1:E1时,所有的数据都查找不到,因此返回的都是{0;0;0;0;0;0;0;0;0;0;0}

  • MATCH(,COUNTIF(E$1:E1,A$2:A$12),)部分,利用MATCH函数来定位0的位置,结果是1

  • 结果加上1后其实就是第一个数据在A列中的位置,用INDEX函数返回,最后用INFA屏蔽错误

  • 当公式拖曳到单元格E3时,由于动态区域变为E$1:E2,其中有一个数据“88”是可以查找到的,因此COUNTIF函数的结果就是{1;0;0;0;0;0;0;0;0;0;0}。那么MATCH函数返回的结果就是“2”,因此INDEX函数返回的就是“99”了

  • 后面的以此类推


02

确定好不重复清单后我们再来看看如何提取的时间。



在单元格F3中输入公式“=IF(E2,LOOKUP(,0/FREQUENCY(-9^9,-IF($E2=$A$2:$A$12,B$2:B$12)),B$2:B$12),"")”,三键回车并向右向下拖曳即可。

思路:

  • IF($E2=$A$2:$A$12,B$2:B$12))部分,这个很简单,返回符合条件的数据

  • -IF($E2=$A$2:$A$12,B$2:B$12))部分,这样的操作是让最大值变为最小值。因为我们提取的是最后一个日期,而通常讲最后面的日期都是最大的

  • FREQUENCY(-9^9,-IF($E2=$A$2:$A$12,B$2:B$12))部分,对一个极小值-9^9在上面的结果中计频。由于-9^9肯定是小于上面数据中的最小值的,因此在最小值的位置上计频1

  • 接下来的操作就很简单了。利用LOOKUP函数的二分法来取得对应的日期

 朋友们如果对这个还有问题可以私信我哦!

本期内容练习文件提取方式:

链接:https://pan.baidu.com/s/11NvEPVRxskBGiumzpLjIiA?pwd=0tl7

提取码:0tl7

好了朋友们,今天和大家分享的内容就是这些了!喜欢我的文章请分享、转发、点赞和收藏吧!如有任何问题可以随时私信我哦!

-END-

长按下方二维码关注EXCEL应用之家

面对EXCEL操作问题时不再迷茫无助

我就知道你“在看”

推荐阅读

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多