【问题标题】:EXCEL: Return value from row where id matches and date is the latestEXCEL:从 id 匹配且日期最新的行返回值
【发布时间】:2016-11-25 10:26:41
【问题描述】:

感谢您帮助创建以下 EXCEL 公式。我有两张表:资产和交易。

资产表中,每个资产都有一个唯一的 ID。它看起来像这样:

A      C      ...  H
------------------------
ID    ASSET      WHERE
1     ntbk       [formula]
2     tablet     [formula]
3     headset    [formula]

TRANS 表 中有每项资产的交易记录。但是,每个资产都有多个交易记录。

   A           E          G
--------------------------------
AssetID    TransDate    Where
   1       20161101     storage
   3       20161103     Johnny B. Good
   1       20161106     Joe Smith

我需要确定 [formula] 将返回 TRANS 表列 E 中的值,其中 ID 匹配并且日期是最新的。基本上,我需要知道资产现在在哪里。到目前为止,我还没有成功。非常感谢您的帮助。

谢谢:)

【问题讨论】:

    标签: excel excel-formula


    【解决方案1】:

    使用这个数组公式:

    =INDEX(TRANS!$E$2:$E$1000,MAX(IF(TRANS!$A$2:$A$1000=B2,ROW(TRANS!$C$2:$C$1000)-ROW(INDEX(TRANS!$C$2:$C$1000,1,1))+1)))
    

    放上去,按CTRL+SHIFT+ENTER然后往下填

    【讨论】:

    • 感谢您的意见。但是,该公式无法正常工作。它显示 TRANS 表中最新记录的值,而不是最新日期行中的值:/
    【解决方案2】:

    对于任何感兴趣的人,这就是我使用简单公式解决它的方法:

    TRANS工作表中创建了新的隐藏列,结合了每个操作的id和日期:

    =IF(A2="";"";"id" & A2 & "date" & E2)
    

    然后,我在 资产表 中创建了两个隐藏列。 F 列查找 itemID 的最近日期:

    {=IF(A2="";"";MAX(IF(trans!$A$2:$A$1000=assets!A2;trans!$E$2:$E$1000)))}
    

    G 列将 itemID 和对应的最近日期结合起来:

    =IF(A2="";"";"id" & A2 & "date" & F2)
    

    最后,我能够将 VLOOKUP 用于我正在寻找的 [公式] 告诉我该项目现在在哪里:

    =IF(A42="";"";VLOOKUP(G42;trans!$B$2:$G$1000;6;FALSE))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-23
      • 1970-01-01
      • 1970-01-01
      • 2021-05-01
      • 1970-01-01
      相关资源
      最近更新 更多