如何使用多个标准进行Vlookup,其中一个标准是最大日期?

时间:2014-06-12 06:02:17

标签: excel vlookup

我有一个数据范围:

A    B      C      D  E
m    x   01Feb2014 c 23
n    x   10Apr2014 d 36
n    x   10Feb2014 d 39
r    x   10May2014 e 43
t    z   10Jan2014 d 36
t    y   10Jan2014 d 36

现在我想找到E列中的值,其中" x"在B栏中," d"是D列,并且在C列中有最大日期,

我试试:

=INDEX($E:$E,MATCH(1,(($B:$B="x")*($D:$D="d")),0))

但我不知道如何处理最高日期标准?

2 个答案:

答案 0 :(得分:1)

这是一个可以使用聚合函数

的解决方案

解决方案有两个部分。

第1部分)查找列B的最大日期=“x”,列D =“d”

=AGGREGATE(14,6,$C$2:$C$7/((B2:B7="x")*(D2:D7="d")),1)

这将为您提供最长日期。

这也是一个很棒的视频,可以让我们更好地了解公式的运作方式https://www.youtube.com/watch?v=H2XCI8Gvz9k

第2部分)找到可以使用SUMIFS

的值
=SUMIFS($E$2:$E$7,$B$2:$B$7,"x",$D$2:$D$7,"d",$C$2:$C$7,
AGGREGATE(14,6,$C$2:$C$7/((B2:B7="x")*(D2:D7="d")),1))

其中第一个公式的部分构成了最大日期的标准。

您可以根据需要调整范围,但根据上表得出最大日期= 10Apr2014和值36的结果。

答案 1 :(得分:0)

如果我们构建新列F Lookup

= concat(B, ":", D, ":", C)仍然有效

我们正在搜索的值= concat("x:d:", max(C))

然后我们执行lookup

lookup(concat("x:d:", max(C)), F, E)

它都是伪代码,但这个想法就在那里。抱歉,它未经测试,因为我没有安装excel。