INDEXMATCH ist die Suchkombination, auf die Excel-Profis zurückgreifen, wenn SVERWEIS die Aufgabe nicht bewältigen kann. Die Funktion kann nach links, rechts, oben oder unten suchen. Sie funktioniert auch weiterhin, wenn du Spalten einfügst. Sie bewältigt zweidimensionale Suchvorgänge. Sobald du verstanden hast, wie die beiden Funktionen zusammenarbeiten, wirst du diese Kombination ständig nutzen.
Was macht die INDEX-Funktion?
INDEX gibt den Wert einer Zelle an einer bestimmten Zeilen- und Spaltenposition innerhalb eines Bereichs zurück. Syntax: =INDEX(array; row_num; [col_num])- array - der Bereich, aus dem die Daten abgerufen werden sollen
- row_num - welche Zeile in diesem Bereich
- col_num - welche Spalte (optional, wenn das Array aus einer einzigen Spalte besteht)
Die Stärke liegt nicht allein in der INDEX-Funktion - sie liegt darin, das fest codierte 3 durch etwas Dynamisches zu ersetzen.
Was macht die Funktion „VERGLEICH“?
VERGLEICH sucht nach einem Wert in einem Bereich und gibt dessen Positionsnummer zurück. Syntax: =VERGLEICH(lookup_value; lookup_array; match_type)- lookup_value - wonach du suchst
- lookup_array - eine einzelne Zeile oder Spalte, in der gesucht werden soll
- match_type - verwende 0 für eine exakte Übereinstimmung (das ist fast immer das, was du willst)
Kombination von INDEX und VERGLEICH
Der Clou kommt, wenn du VERGLEICH in INDEX verschachtelst, um die fest codierte Zeilennummer zu ersetzen:
=INDEX(return_range, MATCH(lookup_value, lookup_array, 0))
Schritt-für-Schritt-Beispiel:
Angenommen, du hast eine Produkttabelle:
| A (Produkt) | B (Preis) |
| Apple | $1.20 |
| Banane | $0.50 |
| Cherry | $3.00 |
=INDEX(B1:B3, MATCH("Banana", A1:A3, 0))
- VERGLEICH("Banana", A1:A3, 0) durchsucht A1:A3 und gibt 2 zurück (Banane steht in Zeile 2).
- INDEX(B1:B3, 2) gibt den zweiten Wert in B1:B3 zurück, nämlich $0.50.
Warum INDEX.MATCH besser ist als SVERWEIS
1. Linkssuche
SVERWEIS kann nur nach rechts suchen. Die Suchspalte muss die Spalte ganz links in der Tabelle sein. INDEX VERGLEICH kennt diese Einschränkung nicht - die Rückgabespalte kann links, rechts oder an beliebiger Stelle liegen.
Beispiel für eine Linkssuche:| A (Preis) | B (Produkt) |
| $1.20 | Apple |
| $0.50 | Banane |
| $3.00 | Cherry |
=INDEX(B1:B3, MATCH(0.5, A1:A3, 0))
SVERWEIS kann das nicht. INDEX VERGLEICH erledigt das, ohne die Tabelle neu anzuordnen.
2. Dynamische Spaltenauswahl
Bei der SVERWEIS-Funktion gibst du die Spaltennummer fest ein: =SVERWEIS(value; table; 3; 0). Wenn jemand eine Spalte in die Tabelle einfügt, verschiebt sich Spalte 3, und die Formel ruft unbemerkt falsche Daten ab.
Mit INDEX.MATCH verweist du auf die Rückgabespalte anhand ihrer tatsächlichen Bereichsadresse. Das Einfügen von Spalten hat keinen Einfluss darauf - die Bereichsreferenz wird automatisch aktualisiert.
3. Keine Auswirkungen durch Begrenzung der Tabellengröße
SVERWEIS durchsucht das gesamte Tabellenarray von links nach rechts. INDEX VERGLEICH durchsucht nur die Suchspalte und ruft dann eine einzelne Zelle ab. Bei sehr großen Datensätzen kann das deutlich schneller sein.
4. Einfacher zu prüfen
In =INDEX(B1:B3; VERGLEICH("Banana"; A1:A3; 0)) siehst du genau, welcher Bereich durchsucht wird (A1:A3) und aus welchem Bereich das Ergebnis stammt (B1:B3). In =SVERWEIS("Banana"; A1:C10; 2; 0) ist 2 eine beliebige Zahl - du musst die Spalten zählen, um sie zu verstehen.
Suche von rechts nach links (klassische Suche von links)
Ein vollständiges Beispiel mit einem echten Datenlayout. Du hast eine Tabelle, in der die Mitarbeiter-ID in Spalte C und der Name des Mitarbeiters in Spalte A steht:
| A (Name) | B (Abteilung) | C (ID) |
| Sarah | Vertrieb | 1001 |
| James | IT | 1002 |
| Maria | HR | 1003 |
=INDEX(A2:A4, MATCH(1002, C2:C4, 0))
Gibt „James“ zurück. SVERWEIS kann das nicht, ohne die Tabelle umzustrukturieren.
Übereinstimmung nach zwei Kriterien
Um anhand von zwei Bedingungen zu suchen, verwende eine Array-Formel. Schließe beide VERGLEICH-Bedingungen mit einer Multiplikation ein (die als „UND“ fungiert):
=INDEX(C2:C10, MATCH(1, (A2:A10="Sales")*(B2:B10="Manager"), 0))
In Excel 2019 und früheren Versionen: Drücke Strg+Umschalt+Enter statt nur Enter, um dies als Array-Formel einzugeben. Die Formel wird dann von geschweiften Klammern { } umgeben.
In Excel 365/2021: Drücke einfach Enter - dynamische Arrays kümmern sich automatisch darum.
Diese Formel ermittelt die erste Zeile, in der in Spalte A „Umsatz“ steht UND in Spalte B „Manager“, und gibt dann den entsprechenden Wert aus Spalte C zurück.
Alternative mit der Funktion „VERGLEICH“ für verkettete Werte:=INDEX(C2:C10, MATCH(A_lookup&B_lookup, A2:A10&B2:B10, 0))
Gib in älteren Excel-Versionen Strg+Umschalt+Enter ein. Dadurch werden beide Kriterien verkettet und ein verkettetes Sucharray durchsucht.
INDEX VERGLEICH VERGLEICH: Zweidimensionale Suche
INDEX kann sowohl eine Zeilen- als auch eine Spaltennummer annehmen, sodass du beide Dimensionen dynamisch nachschlagen kannst.
Syntax:=INDEX(table, MATCH(row_value, row_headers, 0), MATCH(col_value, col_headers, 0))
Beispiel:
| Q1 | Q2 | Q3 | Q4 | |
| Nord | 100 | 120 | 90 | 110 |
| Süd | 80 | 95 | 105 | 88 |
| Ost | 130 | 115 | 125 | 140 |
So rufst du den Wert für „Süd“ im 3. Quartal ab:
=INDEX(B2:E4, MATCH("South", A2:A4, 0), MATCH("Q3", B1:E1, 0))
- VERGLEICH("South", A2:A4, 0) gibt 2 zurück
- VERGLEICH("Q3", B1:E1, 0) gibt 3 zurück
- INDEX(B2:E4, 2, 3) gibt den Wert in Zeile 2, Spalte 3 der Tabelle zurück - 105
INDEX VERGLEICH vs. XVERWEIS
Excel 365 hat die Funktion XVERWEIS eingeführt, die die meisten Anwendungsfälle von INDEX VERGLEICH mit einer einfacheren Syntax abdeckt:
=XLOOKUP("Banana", A1:A3, B1:B3)
XVERWEIS kann auch nach links suchen, mit Arrays umgehen und ungefähre oder exakte Übereinstimmungen verwenden. Für zweidimensionale Suchvorgänge benötigst du weiterhin INDEX, VERGLEICH oder ein verschachteltes XVERWEIS. XVERWEIS ist in Excel 2019 und früheren Versionen nicht verfügbar.
SVERWEIS vs. INDEX VERGLEICH: Vergleichstabelle
| Beitrag | SVERWEIS | INDEX VERGLEICH |
| Schau nach links | Nein | Ja |
| Sieh mal hier | Ja | Ja |
| Zeilenumbrüche beim Einfügen von Spalten | Ja | Nein |
| Zweidimensionale Suche | Nein | Ja (VERGLEICH VERGLEICH) |
| Einfachere Syntax | Ja | Etwas komplexer |
| Verfügbar in allen Excel-Versionen | Ja | Ja |
| Geschwindigkeit bei großen Datensätzen | Langsamer | Schneller |
| Auch als Excel 365-Variante verfügbar | XVERWEIS | XVERWEIS |
Tipps und bewährte Vorgehensweisen
Sichere deine Bereiche. Verwende absolute Bezüge in INDEX-VERGLEICH-Formeln, damit du sie in einer Spalte nach unten kopieren kannst: =INDEX($B$1:$B$100; VERGLEICH(D2; $A$1:$A$100; 0)). Verwende immer 0 für die exakte Übereinstimmung. Das dritte Argument von VERGLEICH steuert die Art der Übereinstimmung. 0 bedeutet „exakt“, 1 bedeutet „kleiner oder gleich“ (erfordert sortierte Daten), -1 bedeutet „größer oder gleich“. Für die meisten Suchvorgänge ist 0 die richtige Wahl. Behandle Fehler mit WENNFEHLER. Wenn der Suchwert nicht gefunden wird, gibt VERGLEICH einen #N/A-Fehler zurück. Setze die Formel in Anführungszeichen: =WENNFEHLER(INDEX($B$1:$B$100; VERGLEICH(D2; $A$1:$A$100; 0)); "Not found"). Benannte Bereiche machen die INDEX-VERGLEICH-Formel verständlich. Wenn du deine Suchspalte „Produkte“ und deine Ergebnisspalte „Preise“ nennst, ist die Formel =INDEX(Prices; VERGLEICH(D2; Products; 0)) selbsterklärend.Häufig gestellte Fragen
Wann sollte ich INDEX.MATCH statt SVERWEIS verwenden?Verwende INDEX.MATCH immer dann, wenn sich deine Rückgabespalte links von deiner Suchspalte befindet, wenn später möglicherweise Spalten in deine Tabelle eingefügt werden, wenn du eine zweidimensionale Suche benötigst oder wenn du mit großen Datensätzen arbeitest, bei denen es auf die Leistung ankommt. Für einfache Suchvorgänge nach rechts in einer stabilen Tabelle funktioniert SVERWEIS gut.
Was bedeutet die 0 in VERGLEICH?Das dritte Argument von VERGLEICH ist der Übereinstimmungstyp. 0 gibt eine exakte Übereinstimmung an - VERGLEICH gibt nur dann eine Position zurück, wenn es den exakten Suchwert findet. 1 findet den größten Wert, der kleiner oder gleich dem Suchwert ist (erfordert aufsteigende Sortierung). -1 findet den kleinsten Wert, der größer oder gleich dem Suchwert ist (erfordert absteigende Sortierung). Verwende immer 0, es sei denn, du benötigst ausdrücklich eine ungefähre Übereinstimmung bei sortierten Daten.
Warum gibt meine INDEX-VERGLEICH-Funktion den falschen Wert zurück?Die häufigste Ursache ist eine Nichtübereinstimmung der Bereiche: Das Sucharray und das Rückgabe-Array haben unterschiedliche Größen oder beginnen in unterschiedlichen Zeilen. Stelle sicher, dass bei =INDEX(B2:B100; VERGLEICH(...; A2:A100; 0)) beide Bereiche in Zeile 2 beginnen und in Zeile 100 enden. Wenn sie auch nur um eine Zeile versetzt sind, ist jedes Ergebnis falsch.
Kann INDEX VERGLEICH Platzhalter verarbeiten?Ja. Verwende die Platzhalter oder ? im Suchwert bei der Funktion „VERGLEICH“. Zum Beispiel findet =VERGLEICH("Ban"; A1:A10; 0) die erste Zelle, die mit „Ban“ beginnt. Beachte, dass die Platzhalter-Suche nur mit dem Übereinstimmungstyp 0 funktioniert.
Wie unterscheidet sich INDEX VERGLEICH von XVERWEIS?XVERWEIS (nur Excel 365/2021) erreicht in den meisten Fällen das Gleiche wie INDEX VERGLEICH, allerdings mit einer einfacheren Syntax. XVERWEIS unterstützt von Haus aus Suchvorgänge von links, ungefähre Übereinstimmungen und mehrere Rückgabespalten. INDEX.MATCH.VERGLEICH hat jedoch weiterhin einen Vorteil bei echten zweidimensionalen Raster-Nachschlägen, bei denen sowohl Zeile als auch Spalte dynamisch sind. INDEX.MATCH funktioniert außerdem in allen Excel-Versionen bis zurück zu Excel 2003.
Warum bekomme ich einen #WERT!-Fehler?Ein #WERT!-Fehler bei INDEX.MATCH bedeutet in der Regel, dass das VERGLEICH-Sucharray nicht aus einer einzigen Zeile oder Spalte besteht - es muss eindimensional sein. Überprüfe, ob dein Suchbereich (das zweite Argument von VERGLEICH) entweder eine Referenz auf eine einzelne Spalte wie A1:A100 oder eine Referenz auf eine einzelne Zeile wie A1:Z1 ist, und keine mehrspaltige Tabelle.