从 Excel 一对多匹配的结果中,查找出日期最晚的那个

文摘   2024-09-06 19:01   上海  

公众号平台最新的推送规则对技术类文章不太友善,如果不想错过干货,请务必 “设为星标”哦!!!


点击上方蓝字 --> 点击“...”--> 选择“设为星标


如果查找结果有多个匹配值,如何返回日期最晚的那一项?今天教两个公式。


案例:


根据下图 1 中 E 列的姓名,从左侧的数据表中查找出该人员最晚的月份及其对应的业绩。


效果如下图 2 所示。


解决方案 1:


1. 在 F2 单元格中输入以下公式 --> 回车:

=XLOOKUP(E2,A:A,B:C,,,-1)


公式释义:

  • 作为 365 版本中的明星函数,xlookup 函数的用法早已深入人心,语法为 xlookup(要查找的内容,要查找的区域,要返回的区域),除了这三个必要参数,其余都是可选的;

  • 此处我们使用了第 6 个可选参数,当它为 -1 时,表示在数据区域中从最后一项往第一项反向搜索,从而找出姓名最后一次出现时的记录


但是这个公式也有一个弊端:一旦排序的顺序变了,结果就可能不正确。因为它查找的是最后一个位置,而不是案例所要求的月份最大。


比如,我们将“业绩”倒序排序一下,查找出来的结果就变了。


下面这种办法,就能补足这个短板。


解决方案 2:


1. 在 F2 单元格中输入以下公式: 

=MAXIFS(B2:B28,A2:A28,E2)


公式释义:

  • 在 B2:B28 区域中查找出符合以下条件的最大值:A2:A28 区域中的值为 E2


2. 在 G2 单元格中输入以下公式:

=MAXIFS(C2:C28,A2:A28,E2,B2:B28,LARGE(B2:B28,1))


公式释义:

  • 在 C2:C28 区域中查找出同时符合以下条件的最大值:

    • A2:A28 区域的值等于 E2,且

    • LARGE(B2:B28,1):B2:B28 区域中的值最大


即使改变排序 ,也不会影响公式结果。


转发、点赞、在看也是爱!

Excel学习世界
你遇到的所有 Excel 坑,我都帮你趟过了。
 最新文章