我正在嘗試取回與公司相關的分數,但我只想要最新的條目。如果根本沒有分數,我希望單元格為空白。
公司 | 分數 | 日期 |
---|---|---|
A | 3.5 | 2020年2月1日 |
A | 4.3 | 2019年1月16日 |
在這種情況下,如果我想要 A 公司的分數,我希望它返回 3.5。如果我要查找 D 公司,我希望該單元格保持空白。
非常感謝您提前提供的任何幫助!
答案1
答案2
使用XLOOKUP()
:
=XLOOKUP(F2, SORTBY(A2:A41, C2:C41), SORT(C2:C41), "", 0, -1)
SORTBY()
將公式中的查找數組 A2:A41 按 C 列(您想要從中取得值的列)排序。您對其進行排序,以便XLOOKUP()
如果從上到下搜尋是您想要的結果,則可以找到查找值的最後一個實例,而不是隨機條目。
您可以透過按升序對傳回值列(本例中為C2:C41)對傳回值列(即公式中的C2:C41)進行排序來確保這一點,即首先是其值中的最低值,最後是最高值。由於該列中有日期,並且 Excel 將日期視為數字,因此這不會造成任何困難。
因此,此時 Excel 會在已建立的虛擬資料範圍的末端看到每組查找範圍值的具有最高值日期(即最新日期)的資料範圍。
XLOOKUP()
然後被告知從末尾到開頭(從下到上)進行搜索,因此當它找到給定的查找值時,它會在公式的虛擬資料範圍內的任何這些值集中找到最後一個值。因此它將傳回虛擬結果列中的對應記錄。由於這也已排序,只是SORT()
這一次,因為它不需要更多,並且由於這兩種排序是由相同的「排序依據」列完成的,因此C 列中的記錄將與A 列中的原始記錄匹配:換句話說,兩列中的成對的行保持在一起,而不是變得混亂不堪。
因此,您建立了查找數組和結果數組的虛擬資料範圍,其中各對保持匹配。您對兩個數組進行了排序,以便每個查找值都與其相似的值分組在一起,從而確保由於按結果數組進行排序,最後一個值將是您想要的值。因為XLOOKUP()
可以從頭到尾看,所以是可以找到的。
實際上,您可以對每組相同的查找值按降序排序,從最高日期到最低日期。如果你有某種理由的話,你可以XLOOKUP()
從頭到尾看一遍。