您好,我正在尝试获取满足以下条件时的最后一个值。
- 客户 ID = 客户 ID
- 日期 1 < 日期 2
返回的值是我想要的。
我尝试过这个公式,但它似乎不起作用......
=IF(AND(E2=$A$2:$A$13,B2:B13<F2),$C$2:$C$13)
谁能帮我?
答案1
答案2
答案3
除非使用数组公式,否则您不能在此类函数中使用单元格范围。如果您有带有 MAXIFS() 函数的新版 Excel,以下是另一种解决方案:
=VLOOKUP(MAXIFS($B$2:$B$13;$B$2:$B$13;"<"&F2;$A$2:$A$13;E2);$B$2:$C$13;2;0)
然后将其拖至第 3 行和第 4 行。
解释:
MAXIFS($B$2:$B$13;$B$2:$B$13;"<"&F2;$A$2:$A$13;E2)
=> 这将查找最后一个 date1 < date2 的优质客户 ID。
=VLOOKUP(MAXIFS(...);$B$2:$C$13;2;0)
=> 这将查找与 MAXIFS() 返回值中找到的日期相对应的值。但如果 2 个客户的日期相同,就会出现问题。
如果两个客户的日期相同,那么我们可以使用 SUMIFS() 而不是 VLOOKUP():
=SUMIFS($C$2:$C$13;$B$2:$B$13;MAXIFS($B$2:$B$13;$B$2:$B$13;"<"&F2;$A$2:$A$13;E2);$A$2:$A$13;E2)
=> 使用 SUMIFS() 函数,我们可以验证获取良好日期和良好客户的值。