-1

我有一个电子表格,其中记录了有关个人的日期,以及其他数据,例如:

汤姆 | xyz | 2012 年 5 月 2 日  
迪克 | 富 | 2012 年 5 月 2 日  
汤姆 | 酒吧 | 2012 年 6 月 1 日

在另一张纸上有一行,我希望能够在其中输入名称,例如Tom,并通过公式在以下单元格中检索第一张纸中 LAST(按日期最近)条目的数据。所以第一张是日志,第二张显示最新的。在以下示例中,输入了第一个单元格,其余的是显示第一个工作表中数据的公式:

汤姆 | 酒吧 | 2012 年 6 月 1 日

依此类推,在日志中显示最新的日期条目。

我被难住了,有什么想法吗?

4

1 回答 1

0

如果您只需要进行一次查找,则可以通过在日志表中添加两个新列来实现:

表 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 中再添加两列,等等。

于 2012-06-12T04:46:17.670 回答