Inhaltsverzeichnis
Dieses Tutorial zeigt, wie INDEX und MATCH in Excel verwendet werden und wie sie besser als VLOOKUP sind.
In einigen unserer letzten Artikel haben wir uns bemüht, Anfängern die Grundlagen der VLOOKUP-Funktion zu erklären und Power-Usern komplexere Beispiele für VLOOKUP-Formeln an die Hand zu geben. Und nun werde ich versuchen, Ihnen die Verwendung von VLOOKUP wenn schon nicht auszureden, so doch zumindest einen alternativen Weg aufzuzeigen, um eine vertikale Suche in Excel durchzuführen.
"Wozu brauche ich das?", werden Sie sich vielleicht fragen. Denn VLOOKUP hat zahlreiche Einschränkungen, die in vielen Situationen verhindern können, dass Sie das gewünschte Ergebnis erhalten. Die INDEX MATCH-Kombination ist dagegen flexibler und verfügt über viele großartige Funktionen, die sie VLOOKUP in vielerlei Hinsicht überlegen machen.
Excel INDEX und MATCH Funktionen - die Grundlagen
Da das Ziel dieses Tutorials darin besteht, einen alternativen Weg zu zeigen, wie man ein Vlookup in Excel durch die Kombination der Funktionen INDEX und MATCH erstellen kann, werden wir uns nicht weiter mit ihrer Syntax und ihren Verwendungsmöglichkeiten befassen, sondern nur das Minimum behandeln, das für das Verständnis der allgemeinen Idee notwendig ist, und dann einen detaillierten Blick auf die Formelbeispiele werfen, die alle Vorteile der Verwendung von INDEX MATCH anstelle von VLOOKUP aufzeigen.
INDEX-Funktion - Syntax und Verwendung
Die Excel-Funktion INDEX gibt einen Wert in einem Array zurück, der auf den von Ihnen angegebenen Zeilen- und Spaltennummern basiert. Die Syntax der Funktion INDEX ist einfach:
INDEX(array, zeilen_num, [spalten_num])Hier ist eine sehr einfache Erklärung der einzelnen Parameter:
- Array - einen Bereich von Zellen, aus dem Sie einen Wert zurückgeben möchten.
- zeilen_zahl - die Zeilennummer im Array, aus dem ein Wert zurückgegeben werden soll; wird sie weggelassen, ist die Spaltennummer erforderlich.
- spalte_num - die Nummer der Spalte im Array, aus der Sie einen Wert zurückgeben möchten; falls nicht angegeben, ist row_num erforderlich.
Weitere Informationen finden Sie unter der Excel-Funktion INDEX.
Und hier ist ein Beispiel für die INDEX-Formel in ihrer einfachsten Form:
=INDEX(A1:C10,2,3)
Die Formel sucht in den Zellen A1 bis C10 und gibt den Wert der Zelle in der zweiten Zeile und der dritten Spalte zurück, d. h. Zelle C2.
Wenn Sie jedoch mit echten Daten arbeiten, wissen Sie selten, welche Zeile und Spalte Sie suchen, und hier kommt die MATCH-Funktion ins Spiel.
MATCH-Funktion - Syntax und Verwendung
Die Excel-Funktion MATCH sucht nach einem Nachschlagewert in einem Bereich von Zellen und gibt den relative Position dieses Wertes in dem Bereich.
Die Syntax der MATCH-Funktion lautet wie folgt:
MATCH(lookup_value, lookup_array, [match_type])- lookup_value - die gesuchte Zahl oder den gesuchten Textwert.
- lookup_array - einen Bereich von Zellen, die durchsucht werden.
- Spielart - gibt an, ob eine exakte Übereinstimmung oder die nächstliegende Übereinstimmung zurückgegeben werden soll:
- 1 oder weggelassen - findet den größten Wert, der kleiner oder gleich dem Nachschlagewert ist. Erfordert die Sortierung des Nachschlagearrays in aufsteigender Reihenfolge.
- 0 - findet den ersten Wert, der genau mit dem Suchwert übereinstimmt. Bei der Kombination INDEX / MATCH benötigen Sie fast immer eine exakte Übereinstimmung, daher setzen Sie das dritte Argument Ihrer MATCH-Funktion auf 0.
- -1 - findet den kleinsten Wert, der größer oder gleich lookup_value ist. Erfordert die Sortierung des lookup-Arrays in absteigender Reihenfolge.
Wenn zum Beispiel der Bereich B1:B3 die Werte "New-York", "Paris", "London" enthält, gibt die unten stehende Formel die Zahl 3 zurück, da "London" der dritte Eintrag im Bereich ist:
=MATCH("London",B1:B3,0)
Weitere Informationen finden Sie unter Excel-Funktion MATCH.
Auf den ersten Blick mag der Nutzen der MATCH-Funktion fraglich erscheinen. Wen interessiert schon die Position eines Wertes in einem Bereich? Was wir wissen wollen, ist der Wert selbst.
Ich möchte Sie daran erinnern, dass die relative Position des Nachschlagewerts (d.h. die Zeilen- und Spaltennummern) genau das ist, was Sie an die zeilen_nummer und spalte_num Wie Sie sich erinnern, kann Excel INDEX den Wert am Schnittpunkt einer bestimmten Zeile und Spalte finden, aber es kann nicht bestimmen, welche Zeile und Spalte Sie genau suchen.
Wie verwendet man die INDEX MATCH Funktion in Excel?
Jetzt, wo Sie die Grundlagen kennen, macht es sicher schon Sinn, wie MATCH und INDEX zusammenarbeiten. Kurz gesagt, INDEX findet den Nachschlagewert anhand der Spalten- und Zeilennummern, und MATCH liefert diese Nummern. Das war's!
Bei der vertikalen Suche verwenden Sie die Funktion MATCH nur, um die Zeilennummer zu ermitteln und den Spaltenbereich direkt an INDEX zu übergeben:
INDEX ( Spalte, um einen Wert von , MATCH ( Nachschlagewert , Spalte zum Anschauen , 0))Haben Sie immer noch Schwierigkeiten, das zu verstehen? Ein Beispiel könnte das Verständnis erleichtern. Nehmen wir an, Sie haben eine Liste der nationalen Hauptstädte und ihrer Einwohnerzahl:
Um die Bevölkerung einer bestimmten Hauptstadt, z.B. der Hauptstadt Japans, zu ermitteln, verwenden Sie die folgende INDEX MATCH Formel:
=INDEX(C2:C10, MATCH("Japan", A2:A10, 0))
Analysieren wir nun, was die einzelnen Bestandteile dieser Formel tatsächlich bewirken:
- Die MATCH-Funktion sucht nach dem Nachschlagewert "Japan" im Bereich A2:A10 und gibt die Zahl 3 zurück, da "Japan" an dritter Stelle im Nachschlagefeld steht.
- Die Zeilennummer geht direkt in die zeilen_nummer Argument von INDEX, das es anweist, einen Wert aus dieser Zeile zurückzugeben.
Die obige Formel wird also zu einem einfachen INDEX(C2:C,3), der besagt, dass in den Zellen C2 bis C10 gesucht und der Wert aus der dritten Zelle in diesem Bereich, d. h. C4, gezogen werden soll, da wir ab der zweiten Zeile zählen.
Wenn Sie die Stadt nicht fest in die Formel eingeben möchten, können Sie sie in eine Zelle, z. B. F1, eingeben und den Zellverweis an MATCH übergeben, um eine dynamische Nachschlageformel zu erhalten:
=INDEX(C2:C10, MATCH(F1,A2:A10,0))
Wichtiger Hinweis! Die Anzahl der Zeilen in der Datei Array Argument von INDEX sollte mit der Anzahl der Zeilen in der Datei lookup_array Argument von MATCH, sonst liefert die Formel ein falsches Ergebnis.
Warum verwenden wir nicht einfach die folgende Vlookup-Formel? Was bringt es, Zeit damit zu verschwenden, die geheimnisvollen Wendungen von Excel MATCH INDEX zu ergründen?
=VLOOKUP(F1, A2:C10, 3, FALSE)
Dieses einfache Beispiel dient nur zu Demonstrationszwecken, damit Sie ein Gefühl dafür bekommen, wie die Funktionen INDEX und MATCH zusammenarbeiten. Weitere Beispiele, die unten folgen, zeigen Ihnen die wahre Stärke dieser Kombination, die viele komplexe Szenarien bewältigt, wenn VLOOKUP strauchelt.
Tipps:
- In Excel 365 und Excel 2021 können Sie eine modernere INDEX XMATCH-Formel verwenden.
- Für Google Sheets, siehe Formelbeispiele mit INDEX MATCH in diesem Artikel.
INDEX MATCH vs. VLOOKUP
Bei der Entscheidung, welche Funktion für vertikale Lookups verwendet werden soll, sind sich die meisten Excel-Gurus einig, dass INDEX MATCH weitaus besser ist als VLOOKUP. Dennoch bleiben viele Leute bei VLOOKUP, erstens, weil es einfacher ist, und zweitens, weil sie nicht alle Vorteile der INDEX MATCH-Formel in Excel verstehen. Ohne dieses Verständnis ist niemand bereit, seine Zeit zu investieren, um eine komplexereSyntax.
Im Folgenden werde ich die wichtigsten Vorteile von MATCH INDEX gegenüber VLOOKUP aufzeigen, damit Sie entscheiden können, ob MATCH INDEX eine sinnvolle Ergänzung für Ihr Excel-Arsenal darstellt.
4 Hauptgründe für die Verwendung von INDEX MATCH anstelle von VLOOKUP
- Nachschlagen von rechts nach links. Wie jeder erfahrene Benutzer weiß, kann VLOOKUP nicht nach links schauen, d.h. der Nachschlagewert sollte sich immer in der Spalte ganz links in der Tabelle befinden. INDEX MATCH kann mit Leichtigkeit nach links schauen! Das folgende Beispiel zeigt es in Aktion: Wie man in Excel einen Wert nach links schiebt.
- Spalten sicher einfügen oder löschen. VLOOKUP-Formeln werden fehlerhaft oder liefern falsche Ergebnisse, wenn eine neue Spalte aus einer Nachschlagetabelle gelöscht oder hinzugefügt wird, weil die VLOOKUP-Syntax die Angabe der Indexnummer der Spalte erfordert, aus der die Daten gezogen werden sollen. Wenn Sie Spalten hinzufügen oder löschen, ändert sich natürlich die Indexnummer.
Mit INDEX MATCH geben Sie den Bereich der Rückgabespalten an, nicht eine Indexnummer. Daher können Sie so viele Spalten einfügen und entfernen, wie Sie möchten, ohne sich Gedanken über die Aktualisierung jeder zugehörigen Formel machen zu müssen.
- Keine Begrenzung für die Größe eines Nachschlagewertes. Wenn Sie die Funktion VLOOKUP verwenden, darf die Gesamtlänge Ihrer Suchkriterien 255 Zeichen nicht überschreiten, da sonst der Fehler #VALUE! auftritt. Wenn Ihr Datensatz also lange Zeichenfolgen enthält, ist INDEX MATCH die einzige funktionierende Lösung.
- Höhere Verarbeitungsgeschwindigkeit. Wenn Ihre Tabellen jedoch Hunderte oder Tausende von Zeilen und folglich Hunderte oder Tausende von Formeln enthalten, arbeitet MATCH INDEX viel schneller als VLOOKUP, da Excel nur die Nachschlage- und Rückgabespalten und nicht das gesamte Tabellenfeld verarbeiten muss.
Die Auswirkung von VLOOKUP auf die Leistung von Excel kann sich vor allem dann bemerkbar machen, wenn Ihre Arbeitsmappe komplexe Array-Formeln wie VLOOKUP und SUM enthält. Der Punkt ist, dass die Überprüfung jedes Wertes im Array einen separaten Aufruf der VLOOKUP-Funktion erfordert. Je mehr Werte Ihr Array also enthält und je mehr Array-Formeln Sie in einer Arbeitsmappe haben, desto langsamer ist Excel.
Excel INDEX MATCH - Formelbeispiele
Nachdem wir nun die Gründe kennen, die für das Erlernen der MATCH INDEX Funktion sprechen, wollen wir nun zum interessantesten Teil kommen und sehen, wie Sie das theoretische Wissen in der Praxis anwenden können.
INDEX MATCH Formel, um von rechts nach links zu suchen
Wie bereits erwähnt, kann VLOOKUP nicht auf die linke Seite blicken. Wenn sich also Ihre Nachschlagewerte nicht in der Spalte ganz links befinden, besteht keine Chance, dass eine Vlookup-Formel das gewünschte Ergebnis liefert. Die INDEX MATCH-Funktion in Excel ist vielseitiger und kümmert sich nicht wirklich darum, wo sich die Nachschlage- und Rückgabespalten befinden.
Für dieses Beispiel fügen wir die Spalte "Rang" auf der linken Seite unserer Beispieltabelle hinzu und versuchen herauszufinden, welchen Rang die russische Hauptstadt Moskau in Bezug auf die Bevölkerung einnimmt.
Verwenden Sie die folgende Formel, um mit dem Nachschlagewert in G1 in C2:C10 zu suchen und einen entsprechenden Wert aus A2:A10 zurückzugeben:
=INDEX(A2:A10,MATCH(G1,C2:C10,0))
Tipp: Wenn Sie Ihre INDEX MATCH-Formel für mehr als eine Zelle verwenden möchten, stellen Sie sicher, dass Sie beide Bereiche mit absoluten Zellreferenzen (wie $A$2:$A$10 und $C$2:4C$10) verriegeln, damit sie beim Kopieren der Formel nicht verzerrt werden.
INDEX MATCH MATCH zur Suche in Zeilen und Spalten
In den obigen Beispielen haben wir INDEX MATCH als Ersatz für das klassische VLOOKUP verwendet, um einen Wert aus einem vordefinierten einspaltigen Bereich zurückzugeben. Was aber, wenn man in mehreren Zeilen und Spalten nachschlagen muss? Matrix oder Zwei-Wege Nachschlagen?
Das mag kompliziert klingen, aber die Formel ist der grundlegenden Excel-Funktion INDEX MATCH sehr ähnlich, mit nur einem Unterschied: Raten Sie mal.
Verwenden Sie einfach zwei MATCH-Funktionen - eine, um eine Zeilennummer, die andere, um eine Spaltennummer zu erhalten. Und ich gratuliere denen, die richtig geraten haben :)
INDEX (array, MATCH ( Vlookup-Wert , Spalte zum Anschauen , 0), MATCH ( hlookup-Wert , Reihe zum Aufschauen , 0))Schauen Sie sich nun die folgende Tabelle an und lassen Sie uns eine INDEX MATCH MATCH Formel erstellen, um die Bevölkerung (in Millionen) in einem bestimmten Land für ein bestimmtes Jahr zu ermitteln.
Mit dem Zielland in G1 (vlookup-Wert) und dem Zieljahr in G2 (hlookup-Wert) sieht die Formel folgendermaßen aus:
=INDEX(B2:D11, MATCH(G1,A2:A11,0), MATCH(G2,B1:D1,0))
Wie diese Formel funktioniert
Wann immer Sie eine komplexe Excel-Formel verstehen müssen, zerlegen Sie sie in kleinere Teile und sehen Sie nach, was jede einzelne Funktion bewirkt:
ÜBEREINSTIMMUNG(G1,A2:A11,0)
- sucht in A2:A11 nach dem Wert in Zelle G1 ("China") und gibt dessen Position zurück, die 2 ist.
MATCH(G2,B1:D1,0))
- durchsucht B1:D1, um die Position des Wertes in Zelle G2 ("2015") zu ermitteln, die 3 ist.
Die obigen Zeilen- und Spaltennummern entsprechen den entsprechenden Argumenten der Funktion INDEX:
INDEX(B2:D11, 2, 3)
Als Ergebnis erhalten Sie einen Wert am Schnittpunkt der 2. Zeile und der 3. Spalte im Bereich B2:D11, also den Wert in Zelle D3. Einfach? Ja!
Excel INDEX MATCH zum Nachschlagen mehrerer Kriterien
Wenn Sie die Gelegenheit hatten, unser Excel VLOOKUP-Tutorial zu lesen, haben Sie wahrscheinlich bereits eine Formel für Vlookup mit mehreren Kriterien ausprobiert. Eine wesentliche Einschränkung dieses Ansatzes ist jedoch die Notwendigkeit, eine Hilfsspalte hinzuzufügen. Die gute Nachricht ist, dass die INDEX MATCH-Funktion von Excel auch mit zwei oder mehr Kriterien nachschlagen kann, ohne dass Sie Ihre Quelldaten ändern oder umstrukturieren müssen!
Hier ist die allgemeine INDEX MATCH Formel mit mehreren Kriterien:
{=INDEX( return_range , MATCH(1, ( Kriterien1 = Bereich1 ) * ( Kriterien2 = Bereich2 ), 0))}Hinweis: Dies ist eine Array-Formel, die mit der Tastenkombination Strg + Umschalt + Eingabe abgeschlossen werden muss.
In der Beispieltabelle unten, nehmen wir an, Sie wollen den Betrag anhand von 2 Kriterien ermitteln, Kunde und Produkt .
Die folgende INDEX MATCH-Formel funktioniert sehr gut:
=INDEX(C2:C10, MATCH(1, (F1=A2:A10) * (F2=B2:B10), 0))
Dabei ist C2:C10 der Bereich, aus dem ein Wert zurückgegeben werden soll, F1 ist Kriterium 1, A2:A10 ist der Bereich, der mit Kriterium 1 verglichen werden soll, F2 ist Kriterium 2, und B2:B10 ist der Bereich, der mit Kriterium 2 verglichen werden soll.
Denken Sie daran, die Formel korrekt einzugeben, indem Sie Strg + Umschalt + Eingabe drücken. Excel schließt die Formel dann automatisch in geschweifte Klammern ein, wie im Screenshot gezeigt:
Wenn Sie in Ihren Arbeitsblättern keine Array-Formeln verwenden möchten, fügen Sie der Formel eine weitere INDEX-Funktion hinzu und schließen Sie sie mit einem normalen Eingabetipp ab:
Wie diese Formeln funktionieren
Die Formeln verwenden den gleichen Ansatz wie die grundlegende Funktion INDEX MATCH, die eine einzelne Spalte durchsucht. Um mehrere Kriterien auszuwerten, erstellen Sie zwei oder mehr Arrays mit TRUE- und FALSE-Werten, die Übereinstimmungen und Nicht-Übereinstimmungen für jedes einzelne Kriterium darstellen, und multiplizieren dann die entsprechenden Elemente dieser Arrays. Die Multiplikationsoperation wandelt TRUE und FALSE in 1 und 0 um,Die Funktion MATCH mit dem Nachschlagewert 1 findet die erste "1" im Array und übergibt ihre Position an INDEX, das einen Wert in dieser Zeile aus der angegebenen Spalte zurückgibt.
Die Nicht-Array-Formel verlässt sich auf die Fähigkeit der INDEX-Funktion, Arrays nativ zu verarbeiten. Der zweite INDEX ist mit 0 konfiguriert zeilen_nummer so dass das gesamte Spaltenarray an MATCH übergeben wird.
Dies ist eine allgemeine Erklärung der Logik der Formel. Weitere Details finden Sie unter Excel INDEX MATCH mit mehreren Kriterien.
Excel INDEX MATCH mit AVERAGE, MAX, MIN
Microsoft Excel verfügt über spezielle Funktionen, um den Minimal-, Maximal- und Durchschnittswert in einem Bereich zu ermitteln. Was aber, wenn Sie einen Wert aus einer anderen Zelle benötigen, der mit diesen Werten verbunden ist? In diesem Fall verwenden Sie die Funktionen MAX, MIN oder AVERAGE zusammen mit INDEX MATCH.
INDEX MATCH mit MAX
Um den größten Wert in Spalte D zu finden und einen Wert aus Spalte C in derselben Zeile zurückzugeben, verwenden Sie diese Formel:
=INDEX(C2:C10, MATCH(MAX(D2:D10), D2:D10, 0))
INDEX MATCH mit MIN
Um den kleinsten Wert in Spalte D zu finden und einen zugehörigen Wert aus Spalte C zu ziehen, verwenden Sie diesen:
=INDEX(C2:C10, MATCH(MIN(D2:D10), D2:D10, 0))
INDEX MATCH mit AVERAGE
Um den Wert zu ermitteln, der dem Durchschnitt in D2:D10 am nächsten kommt, und einen entsprechenden Wert aus Spalte C zu erhalten, ist die folgende Formel zu verwenden:
=INDEX(C2:C10, MATCH(AVERAGE(D2:D10), D2:D10, -1 ))
Je nachdem, wie Ihre Daten organisiert sind, geben Sie entweder 1 oder -1 für das dritte Argument (match_type) der MATCH-Funktion an:
- Wenn Ihre Lookup-Spalte (in unserem Fall Spalte D) sortiert ist aufsteigend setzen Sie 1 ein. Die Formel berechnet den größten Wert, der weniger als oder gleich dem Durchschnittswert.
- Wenn Ihre Lookup-Spalte sortiert ist absteigend geben Sie -1 ein. Die Formel berechnet den kleinsten Wert, der größer als oder gleich dem Durchschnittswert.
- Wenn Ihr Lookup-Array einen Wert enthält genau gleich auf den Durchschnitt, können Sie 0 für exakte Übereinstimmung eingeben. Eine Sortierung ist nicht erforderlich.
In unserem Beispiel sind die Bevölkerungszahlen in Spalte D in absteigender Reihenfolge sortiert, daher verwenden wir -1 für den Übereinstimmungstyp. Als Ergebnis erhalten wir "Tokio", da seine Bevölkerung (13.189.000) die nächste Übereinstimmung ist, die größer als der Durchschnitt (12.269.006) ist.
Vielleicht interessiert es Sie, dass VLOOKUP auch solche Berechnungen durchführen kann, allerdings als Array-Formel: VLOOKUP mit AVERAGE, MAX, MIN.
Verwendung von INDEX MATCH mit IFNA / IFERROR
Wie Sie wahrscheinlich schon bemerkt haben, erzeugt eine INDEX MATCH-Formel in Excel einen #N/A-Fehler, wenn sie keinen Nachschlagewert finden kann. Wenn Sie die Standard-Fehlernotation durch etwas Sinnvolleres ersetzen möchten, können Sie Ihre INDEX MATCH-Formel in die IFNA-Funktion einbetten, zum Beispiel:
=IFNA(INDEX(C2:C10, MATCH(F1,A2:A10,0)), "Es wurde keine Übereinstimmung gefunden")
Wenn nun jemand eine Nachschlagetabelle eingibt, die im Nachschlagebereich nicht vorhanden ist, wird der Benutzer in der Formel ausdrücklich darauf hingewiesen, dass keine Übereinstimmung gefunden wurde:
Wenn Sie alle Fehler abfangen möchten, nicht nur #N/A, verwenden Sie die Funktion IFERROR anstelle von IFNA:
=IFERROR(INDEX(C2:C10, MATCH(F1,A2:A10,0)), "Ups, da ist was schief gelaufen!")
Bitte bedenken Sie, dass es in vielen Situationen unklug sein kann, alle Fehler zu verschleiern, weil sie Sie auf mögliche Fehler in Ihrer Formel aufmerksam machen.
So funktioniert die Verwendung von INDEX und MATCH in Excel. Ich hoffe, dass unsere Formelbeispiele für Sie hilfreich sind und freue mich darauf, Sie nächste Woche in unserem Blog zu sehen!
Übungsheft zum Herunterladen
Excel INDEX MATCH Beispiele (.xlsx Datei)