电子表格函数中的最后匹配日期

时间:2012-06-12 04:06:38

标签: formula libreoffice calc

所以我有这个电子表格。正在记录有关个人的日期,以及其他数据:

  

汤姆| xyz | 2012年5月2日
  迪克| foo | 2012年5月2日
  汤姆|吧| 6/1/2012

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

  

汤姆|吧| 6/1/2012

等等,显示日志中最新的日期条目。

我很难过,有什么想法吗? :)

1 个答案:

答案 0 :(得分:0)

如果您只需要执行单个查找,则可以通过在日志表中添加两个新列来执行此操作:

Sheet 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 |   | * | *

Sheet 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(如果非空,则选择下一个)(如果更近,则选择next),对于另一列,如果第一个测试也执行了,则选择next如此。

免责声明:我对电子表格非常缺乏经验,上面的解决方案很难看但是完成了工作。例如,如果您希望Sheet2中的第二行执行另一次查找,则需要向Sheet1等添加两列。