So verwenden Sie Index/Match oder eine andere Funktion, um Zellendaten links vom Nachschlagewert abzurufen

So verwenden Sie Index/Match oder eine andere Funktion, um Zellendaten links vom Nachschlagewert abzurufen

Ich versuche, eine Kombination aus INDEXund zu verwenden MATCH, um Folgendes zum Laufen zu bringen.

Bildbeschreibung hier eingeben

Sie werden unten im Bild sehen, dass es einen „High“-Wert gibt. Ich versuche dann, die Tabelle links zu durchsuchen, um diesen Wert zu finden. Dann möchte ich, dass die Ausgabe der Name „Floorplan“ ist. Im Wesentlichen möchte ich also, dass „D“ in J14 angezeigt wird.

Ich habe es ursprünglich versucht, VLOOKUPaber festgestellt, dass die erste Spalte der Nachschlagewert sein muss, also versuche ich es mit dem Index/Match-Weg. Ich bekomme es aber nicht zum Laufen. Für jedes Feedback wäre ich dankbar.

Verwendete Formel:

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

Antwort1

Wie gns100kommentiert, MATCH()schlug es fehl, da der abzugleichende Bereich keine einzelne Spalte (oder Zeile) war. Und die Verwendung XLOOKUP()funktioniert hier gut, auch wenn die Einzelheiten es manchmal ungeeignet machen. Es folgt demselben grundlegenden Ansatz, INDEX/MATCHda ihm dieselben Grundlagen gegeben sind: Nachschlagewert, wo nach diesem Wert gesucht werden soll, wohin man gehen muss, um herauszufinden, was zurückgegeben werden soll.

VLOOKUP()KANN funktionieren, wenn Sie es aus irgendeinem Grund bevorzugen. Funktioniert, glaube ich, INDEX/MATCHin jeder Excel-Version, die über verfügt. Mit der angezeigten kleinen Anpassung können Sie es also immer verwenden, wenn Kompatibilität mit älteren Versionen erforderlich ist.VLOOKUP()gns100

VLOOKUP()tut dies, indem es INDEX()für seinen zweiten Parameter eine virtuelle Tabelle erstellt, die nur die Nachschlagespalte und die Ergebnisspalte enthält, und zwar in dieser Reihenfolge. Zum Beispiel:

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

Die {4,1}("Array-Konstante") weist an, INDEX()zuerst die 4. Spalte und dann die 1. Spalte zurückzugeben, sodass Sie eine (virtuelle) Nachschlagetabelle mit zwei Spalten erhalten, in der Sie VLOOKUP()"nach rechts schauen" können, um das Ergebnis zu finden. Es sieht also immer noch "nach rechts" aus, hat aber den Effekt, dass es "nach links" schaut.

Das Teil in der Mitte ROW(INDIRECT("1:"&ROWS(A9:D15))ist einfach die altmodische Methode, eine Reihe von „1“ bis zu was auch immer zu erhalten, sodass angegeben wird, dass alle Zeilen zurückgegeben werden sollen. Heutzutage SEQUENCE( ROWS(A1:D15) )würde ein einfaches ausreichen, aber das geht nicht weiter zurück als XLOOKUP()so … Der Grund, warum es dort sein muss, ist, dass, wenn Sie entweder Zeilen oder Spalten (oder „Bereiche“ in einigen anderen Verwendungen) direkt mit einer Array-Konstante oder irgendetwas angeben, das während seiner Berechnung eine Array-Konstante generiert, Excel erfordert, dass der andere Parameter vollständig angegeben wird, anstatt nur beispielsweise ,,(nichts für den Zeilenparameter) oder ,0,(„0“ für den Zeilenparameter) zu verwenden, von denen jedes „ALLE“ Zeilen für Excel angibt.

Ja, Old School war widerlich. Das muss man einfach lieben XLOOKUP()und FILTER()!

Sie können eine ähnliche Technik mit den Zeilen verwenden, die allerdings etwas anders zusammengesetzt sind, um INDEX()eine virtuelle Tabelle zu erstellen, die von unten nach oben und von oben nach unten verläuft ... die letzte Zeile ist jetzt die erste, die erste Zeile ist jetzt die letzte. Auf diese Weise können Sie „das neueste Datum“ und ähnliche Dinge finden, in denen Sie von unten nach oben suchen möchten.

Sie alle dienen jedoch nur der Kompatibilität mit älteren Versionen, da sie XLOOKUP()nur in seltenen Fällen nicht das erreichen, was sie brauchen. Und die ähnlichen Ansätze, die das tun, was FILTER()sie jetzt tun, sind natürlich auch nur für die Kompatibilität mit älteren Versionen erforderlich.

Eine interessante Funktion, die INDEX()das kann und die noch nicht veraltet ist, zumindest nicht ganz (ich denke, die neuen Array-Handling-Funktionen könnten dies ebenfalls überflüssig machen), ist, dass es einen Bereich in allen vier Variationen transponieren kann, nicht nur von links nach rechts zu oben nach unten und umgekehrt wie bei TRANSPOSE(). Aber die Tatsache, dass Sie auf den Millionen Excel-Hilfeseiten noch nie davon gehört haben, bedeutet wahrscheinlich, dass es in der realen Welt nie benötigt wird.

verwandte Informationen