如果查找结果有多个匹配值,如何返回日期最晚的那一项?今天教两个公式。
案例:
根据下图 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 区域中的值最大
即使改变排序 ,也不会影响公式结果。