如果您只需要进行一次查找,则可以通过在日志表中添加两个新列来实现:
表 1
| A | B | C | D | E | F
1 | Tom | xyz | 6/2/2012 | | * | *
2 | Dick | foo | 5/2/2012 | | * | *
3 | Tom | bar | 6/1/2012 | | * | *
表 2
| A | B | C
1 | Tom | =Sheet1.E1 | =Sheet1.F1
*(E1) ==IF(AND($A1=Sheet2.$A$1;E2=0);B1;E2)
(即把上面的公式粘贴到 中E1
,然后用 复制/粘贴到其他单元格中*
)
解释:如果 A 不是你要找的,那就找下一个;如果是,但有一个非空的下一个,去下一个;否则,得到它。这样,您将选择与您的搜索相对应的最后一个。我假设您想要最后一个条目,而不是“日期最近的条目”,因为这就是您在示例中所要求的。如果我对您的问题的解释有误,请更新它,我可以尝试提供更好的答案。
更新:如果日志日期可能出现问题,请按照以下方式获取最后一个条目:
*(F1) ==IF(AND($A1=Sheet2.$A$1;C1>=F2);C1;F2)
*(E1) ==IF(C1=F1;B1;E2)
在这里,我只是将测试F2=0
(如果非空,则C1>=F2
选择下一个)替换为(如果较新,则选择下一个),对于另一列,如果第一个测试也这样做,则选择下一个。
免责声明:我对电子表格非常缺乏经验,上面的解决方案很丑陋,但可以完成工作。例如,如果您希望 Sheet2 中的第 2 行进行另一次查找,则需要在 Sheet1 中再添加两列,等等。