EXCEL:从id匹配的行返回值,date是最新的

时间:2016-11-25 10:26:41

标签: excel excel-formula

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

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

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

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

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

我需要确定 [公式] ,它会从ID表格E中返回值,其中ID匹配且日期是最新的。基本上,我需要知道资产现在在哪里。到目前为止,我还没有成功。我很感激你的帮助。

谢谢:)

2 个答案:

答案 0 :(得分: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 并填写

答案 1 :(得分:0)

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

转换表中创建了新的隐藏列,结合了每项操作的ID和日期:

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

然后,我在 ASSETS表单中创建了两个隐藏列。 列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))