【问题标题】:Getting a value based on the latest date for another given value根据另一个给定值的最新日期获取值
【发布时间】:2020-01-05 18:12:12
【问题描述】:

我有一张这样的桌子

我想查找特定租户的最新金额。例如

B2 中的公式应返回 £20.00

源数据未排序。租户每天只需支付 1 次付款。我使用的是最新版本的 Excel。

【问题讨论】:

  • 你试过什么?结果如何?每个租户的日期是否总是按升序排序?或者它们可能是随机的?可以在同一日期进行多次付款吗?什么版本的 Excel?
  • 嗨罗恩。我试过 VLOOKUP。我认为可行的唯一方法是,如果我更改源数据以添加复合列,并且我想在此之前找到一个更简洁的解决方案。我也玩过 INDEX 和 MATCH。我看到的方法是将查找更改为布尔比较,我可以看到这将如何使用一个标准,但不能使用两个(最新日期和租户名称)。
  • 嗨,Ron,我已经在原始问题中回答了您的问题。

标签: excel vlookup lookup lookup-tables


【解决方案1】:

我想是这样的:

F2(最新金额)中的公式是:

{=INDEX(C:C,MATCH(1,(E2=B:B)*​​(MAXIFS(A:A,B:B,E2)=A:A),0))}

(它是一个数组公式,用CTRL-SHIFT-ENTER输入)

感谢https://exceljet.net/formula/index-and-match-with-multiple-criteria

【讨论】:

    【解决方案2】:

    @MikeFleming 的方法应该很有效。

    另一种方法,使用 Excel 中可用的一些新函数(在本例中为 SORTFILTER)。我也在使用带有结构化引用的 TabletenantName 可以是任何单元格,也可以是对单元格的命名引用。

    =LOOKUP(9.9E+307,INDEX(SORT(FILTER(pmtTbl,pmtTbl[Tenant]=tenantName),1,1,FALSE),0,3))
    

    或(使用某些参数的默认值会更短一些):

    =LOOKUP(9.9E+307,INDEX(FILTER(SORT(pmtTbl),pmtTbl[Tenant]=tenantName),0,3))
    
    • FILTER:只返回表中包含tenantName的行
    • SORT:按日期列排序,升序
    • INDEX:只返回表格的金额列
    • LOOKUP:这是返回该列中最后一个条目的方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-15
      • 1970-01-01
      • 2022-12-17
      • 2022-01-24
      • 2021-07-13
      • 2019-05-20
      相关资源
      最近更新 更多