如何使用索引/匹配或其他函數獲取查找值左側的單元格數據

如何使用索引/匹配或其他函數獲取查找值左側的單元格數據

我正在嘗試結合使用INDEXMATCH來使以下內容發揮作用。

在此輸入影像描述

您將在影像的底部騎行側看到有一個“高”值。他們試圖做的是搜尋左側的表格以找到該值。然後,我希望輸出是“平面圖”名稱。所以本質上,我希望「D」出現在 J14 中。

我最初嘗試過,VLOOKUP但了解到第一列需要是查找值,所以我正在嘗試索引/匹配路線。但我無法讓它工作。對於任何反饋,我們都表示感謝。

使用的公式:

=INDEX($A$9:$D$15,MATCH($I$14,A9:D15,4),1)

答案1

如所gns100評論的,MATCH()失敗是因為匹配的範圍不是單一列(或行)。在這裡使用XLOOKUP()效果很好,但細節確實使它不適合,就像有時那樣。它遵循相同的基本方法,因為INDEX/MATCH它具有相同的基礎知識:查找值、在哪裡查找該值、在哪裡找到要傳回的內容。

VLOOKUP()可以做到這一點,如果出於某種原因你喜歡它。我相信,INDEX/MATCH它適用於任何具有 的 Excel 版本VLOOKUP(),因此透過顯示的小調整gns100,當需要與舊版本相容時,您始終可以使用它。

VLOOKUP()透過使用INDEX()為其第二個參數建立一個虛擬表來完成此操作,該虛擬表僅包含查找列和結果列,並且按該順序。例如:

=VLOOKUP($I$14,  INDEX(A9:D15, ROW(INDIRECT("1:"&ROWS(A9:D15)) ),{4,1}),  2,  FALSE)

{4,1}“數組常數”)告訴INDEX()您首先返回第四列,第二列返回第一列,為您提供一個(虛擬)兩列查找表,VLOOKUP()可以在其中“向右查找”以查找結果。所以它仍然“看起來正確”,但效果是它“看起來左邊”。

中間的那一位ROW(INDIRECT("1:"&ROWS(A9:D15))只是獲取從“1”到任何值的序列的老式方法,因此它指定返回所有行。如今,一個簡單的SEQUENCE( ROWS(A1:D15) )就可以了,但這不會回到過去XLOOKUP()……它必須存在的原因是,當您直接使用數組常數來指定行或列(或某些其他用途中的“區域”)時,或者在計算過程中產生數組常數的任何內容,那麼Excel 要求完全指定其他參數,而不是僅使用,,(行參數不指定任何內容)或,0,(行參數為「0」),其中任何一個都指定「 ALL」行到Excel。

是的,舊學校很討厭。一定要愛XLOOKUP()FILTER()

您可以對行使用類似的技術,儘管組成略有不同,以創建INDEX()一個自下而上、自上而下的虛擬表......最後一行現在是第一行,第一行現在是最後一行。這可以讓您找到“最新日期”以及您想要從下向上搜尋的類似內容。

所有這些都只是為了與舊版本相容,但只能XLOOKUP()在不常見的情況下無法完成所需的操作。當然,現在所做的類似方法FILTER()也只需要舊版的兼容性。

可以做的一件有趣的事情INDEX()還沒有過時,無論如何也沒有過時(我認為新的數組處理函數也可能使這個過時),它可以在所有四種變體中轉置範圍,而不僅僅是左右變位-down ,反之亦然,就像TRANSPOSE().但事實上,您從未聽說過在數百萬個 Excel 幫助網站上這樣做,這可能意味著現實世界中永遠不需要它。

相關內容