Return 行中满足两个条件时列中值的最后一个实例

Return last instance of value from column when two criteria met in row

我在获取 Excel 公式时遇到问题,该公式 returns 在相邻行中满足两个条件时列中值的最后一个实例。

在虚拟示例中,我有一本日记,记录了我在什么时候和哪些宠物一起进行了哪些活动。见下图。

Workbook screen shot

我想要一个公式来告诉我上次对特定宠物执行特定 activity 的时间。

例如,我上次按摩我的青蛙是什么时候?或者我最后一次刷猫是什么时候?

在 B2 或 =LOOKUP(2,1/(Pet=A3),B8:B13) B3 中使用 =INDEX(B:B,SUMPRODUCT(MAX((Pet=A2)*ROW(Pet)))) 我可以获得 Excel 来告诉我上次 an activity 与特定宠物。

但我想知道我上次与特定宠物进行 特定 activity 是什么时候。

非常感谢任何帮助。

考虑到您的数据在 A7:C13 范围内,包括 headers 并且宠物名称在 A2:A4 中列出,那么试试这个...

要获取服务日期, 在 B2

=MAX(INDEX(($A:$A=A2)*$B:$B,))

然后抄下来。

然后 在 C2

=IF(ISNUMBER(MATCH(1,INDEX(($A:$A=$A2)*($B:$B=$B2)*($C:$C=C),),0)),"True","")

然后上下复制。

将此公式放入 B2 并向下拖动到 B4:

=INDEX(B:B,AGGREGATE(14,6,ROW($B:$B)/($A:$A=$A2),1),1)

将此公式放入 C2,拖到 E2,然后向下拖下两行:

=IFERROR(INDEX($B:$B,AGGREGATE(14,6,ROW($B:$B)/(($A:$A=$A2)*($C:$C=C)),1),1),"-")

这一切都假定您的日期都是按时间顺序输入的。