LXLogicExcel
🔥
0
0

INDEXMATCH: Die leistungsstärkste Suchfunktion in Excel

Vom LogicExcel-RedaktionsteamAktualisiert Juni 202611 Min. Lesezeit2,050 WörterJetzt üben

Bereit zum Üben?

Wende das Gelernte gleich in interaktiven Übungen an.

Lektion starten 21

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)
Beispiel: =INDEX(A1:A10; 3) gibt den Wert in der dritten Zeile von A1:A10 zurück - genau wie wenn du einfach =A3 eingibst.

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)
Beispiel: =VERGLEICH("Banana"; A1:A10; 0) gibt 3 zurück, wenn „Banane“ in der dritten Zelle von A1:A10 steht.

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
So rufst du den Preis für „Banane“ ab:
=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.
Das entspricht =SVERWEIS("Banana"; A1:B3; 2; 0) - aber bei INDEX VERGLEICH spielt es keine Rolle, in welcher Spalte sich der Suchwert befindet.

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.20Apple
$0.50Banane
$3.00Cherry
So findest du den Produktnamen für den Preis von 0,50 $:
=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)
SarahVertrieb1001
JamesIT1002
MariaHR1003
So suchst du einen Namen anhand der ID:
=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:
Q1Q2Q3Q4
Nord10012090110
Süd809510588
Ost130115125140
Die Tabellendaten befinden sich in B2:E4, die Zeilenüberschriften (Regionen) in A2:A4 und die Spaltenüberschriften (Quartale) in B1:E1.

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
Das ist mit SVERWEIS oder WVERWEIS allein nicht möglich.

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

BeitragSVERWEISINDEX VERGLEICH
Schau nach linksNeinJa
Sieh mal hierJaJa
Zeilenumbrüche beim Einfügen von SpaltenJaNein
Zweidimensionale SucheNeinJa (VERGLEICH VERGLEICH)
Einfachere SyntaxJaEtwas komplexer
Verfügbar in allen Excel-VersionenJaJa
Geschwindigkeit bei großen DatensätzenLangsamerSchneller
Auch als Excel 365-Variante verfügbarXVERWEISXVERWEIS

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.

INDEXMATCH: Die leistungsstärkste Suchfunktion in Excel üben →