感觉应该有一个相当直截了当的答案,但我发现它很让人头疼,所以有兴趣看到答案。
在进行了一些谷歌搜索后,我发现了一个发布在专用 Excel 网站 (view here) 上的解决方案。 [注意 - 查看标题“任意查找”]
将其应用于您的示例,假设您的数据在A1:C10 和单元格D2 中,您想在单元格D3 中输入名称并返回最近的付款:
1 Date Name Amt EnterName
2 20 Jul Bob 50 <enter name here>
3 13 Sep Susan 20 = enter formula here (see below)
4 06 Jan Xavier 100
在单元格D3 中输入以下作为数组公式(即输入公式,然后按CTRL + SHIFT + ENTER
=INDEX($B$2:$C$10,SMALL(IF(OFFSET($B$2:$C$10,0,0,ROWS($B$2:$C$10),1)=$D$2, ROW(OFFSET($B$2:$C$10,0,0,ROWS($B$2:$C$10),1))-ROW(OFFSET($B$2:$C$10,0,0,1,1) )+1, ROW(OFFSET($B$2:$C$10,ROWS($B$2:$C$10)-1,0,1,1))+1),COUNTIF(OFFSET($B$2:$C$10,0,0,ROWS($B$2:$C$10),1),$D$2)),2)
如果您想了解更多详细信息,建议您查看我提供的链接。为清楚起见,我只是根据提供的链接修改了公式(更改了单元格引用)。