我具有以下数据集(请参见图像):A到E列包含WORK SITE检查记录(SITE ID(A),Inspection type(B),Site status(C ),检查公司(D)和检查日期(E))。
[在下一张工作表中(从G到J的绿色区域),我有一个工作地点的排序列表(G列),我正在尝试为此建立一个查询表达式以检索最新的检查日期(= MAX值),对应检查公司和相应的站点状态,“检查类型”为“年度”,即B = 'ANNUAL'
。在下面的示例中,对于WORK_SITE_1,所需的结果应为:
WORK_SITE_1 - 13/Nov/2019 - COMP_8 - Operational
我希望使用ARRAYFORMULA以避免将公式放入每一行中。
=ARRAYFORMULA(IF(G2:G="","",VLOOKUP(G2:G,A2:E,{5,4,3},FALSE)))
然而,以上内容仅是检验日期的第一例,而不是最新日期。目前,我在每行H中使用以下查询:
=QUERY($A$1:$E$14,"SELECT MAX(E) WHERE A = '"&G2&"' LABEL MAX(E) '' ",0)
并且在每一行的第一列中
=QUERY($A$2:$E$14,"SELECT D, C WHERE E = date '"&TEXT(H2, "yyyy-mm-dd") &"' AND A = '"&G2&"' ",0)
我希望对此有所提示。预先谢谢你。
[不必太深入,我认为您可以按日期降序对vlookup的范围进行排序,并且它将返回最新的vlookup的范围。
=ARRAYFORMULA(IF(G2:G="","",VLOOKUP(G2:G,SORT(A2:E,5,FALSE),{5,4,3},FALSE)))