INDEX MATCH MATCH in Excel für zweidimensionale Suchabfragen

  • Teile Das
Michael Brown

Das Tutorial zeigt einige verschiedene Formeln, um eine zweidimensionale Suche in Excel durchzuführen. Schauen Sie sich einfach die Alternativen an und wählen Sie Ihren Favoriten :)

Wenn Sie in Ihren Excel-Tabellen nach etwas suchen, suchen Sie meistens vertikal in den Spalten oder horizontal in den Zeilen. Aber manchmal müssen Sie sowohl in den Zeilen als auch in den Spalten suchen. Mit anderen Worten, Sie wollen einen Wert am Schnittpunkt einer bestimmten Zeile und Spalte finden. Dies wird als Matrix-Suche (alias 2-dimensional oder 2-Wege-Suche ), und dieses Tutorial zeigt, wie man es auf 4 verschiedene Arten macht.

    Excel INDEX MATCH MATCH Formel

    Die gängigste Art, eine zweiseitige Suche in Excel durchzuführen, ist die Verwendung von INDEX MATCH MATCH, einer Variante der klassischen INDEX MATCH-Formel, zu der Sie eine weitere MATCH-Funktion hinzufügen, um sowohl die Zeilen- als auch die Spaltennummern zu erhalten:

    INDEX ( Daten_Array , MATCH ( vlookup_wert , lookup_column_range , 0), MATCH ( hlookup-Wert , lookup_row_range , 0))

    Als Beispiel wollen wir eine Formel erstellen, um die Population eines bestimmten Tieres in einem bestimmten Jahr aus der unten stehenden Tabelle zu ziehen. Zunächst definieren wir alle Argumente:

    • Daten_Array - B2:E4 (Datenzellen, ohne Zeilen- und Spaltenüberschriften)
    • Vlookup_Wert - H1 (Zieltier)
    • Lookup_column_range - A2:A4 (Zeilenüberschriften: Tiernamen) - A3:A4
    • Hlookup_Wert - H2 (Zieljahr)
    • Lookup_row_range - B1:E1 (Spaltenüberschriften: Jahre)

    Setzt man alle Argumente zusammen, so erhält man diese Formel für die zweiseitige Suche:

    =INDEX(B2:E4, MATCH(H1, A2:A4, 0), MATCH(H2, B1:E1, 0))

    Wie diese Formel funktioniert

    Auch wenn die Formel auf den ersten Blick etwas kompliziert aussieht, ist ihre Logik sehr einfach und leicht zu verstehen: Die INDEX-Funktion ruft einen Wert aus dem Datenfeld ab, der auf den Zeilen- und Spaltennummern basiert, und zwei MATCH-Funktionen liefern diese Nummern:

    INDEX(B2:E4, zeilen_num, spalten_num)

    Hier nutzen wir die Fähigkeit von MATCH(lookup_value, lookup_array, [match_type]), eine relative Position von lookup_value in lookup_array .

    Um also die Zeilennummer zu erhalten, suchen wir das Tier von Interesse (H1) in den Zeilenköpfen (A2:A4):

    ÜBEREINSTIMMUNG(H1, A2:A4, 0)

    Um die Spaltennummer zu erhalten, suchen wir das Zieljahr (H2) in den Spaltenüberschriften (B1:E1):

    ÜBEREINSTIMMUNG(H2, B1:E1, 0)

    In beiden Fällen suchen wir nach einer exakten Übereinstimmung, indem wir das 3. Argument auf 0 setzen.

    In diesem Beispiel gibt das erste MATCH den Wert 2 zurück, weil unser vlookup-Wert (Eisbär) in A3, der zweiten Zelle in A2:A4, gefunden wird. Das zweite MATCH gibt den Wert 3 zurück, weil der hlookup-Wert (2000) in D1, der dritten Zelle in B1:E1, gefunden wird.

    Unter Berücksichtigung der obigen Ausführungen reduziert sich die Formel auf:

    INDEX(B2:E4, 2, 3)

    Und einen Wert am Schnittpunkt der 2. Zeile und der 3. Spalte im Datenfeld B2:E4 zurückgeben, der ein Wert in der Zelle D3 ist.

    VLOOKUP- und MATCH-Formel für die 2-Wege-Suche

    Eine andere Möglichkeit, eine zweidimensionale Suche in Excel durchzuführen, ist eine Kombination aus den Funktionen VLOOKUP und MATCH:

    VLOOKUP( vlookup_wert , table_array , MATCH( hlookup_value , lookup_row_range , 0), FALSE)

    Für unsere Beispieltabelle sieht die Formel folgendermaßen aus:

    =VLOOKUP(H1, A2:E4, MATCH(H2, A1:E1, 0), FALSE)

    Wo:

    • Tabelle_Array - A2:E4 (Datenzellen einschließlich Zeilenüberschriften)
    • Vlookup_Wert - H1 (Zieltier)
    • Hlookup_Wert - H2 (Zieljahr)
    • Lookup_row_range - A1:E1 (Spaltenüberschriften: Jahre)

    Wie diese Formel funktioniert

    Der Kern der Formel ist die Funktion VLOOKUP, die für eine exakte Übereinstimmung konfiguriert ist (das letzte Argument ist auf FALSE gesetzt), die den Suchwert (H1) in der ersten Spalte des Tabellenarrays (A2:E4) sucht und einen Wert aus einer anderen Spalte in derselben Zeile zurückgibt. Um zu bestimmen, aus welcher Spalte ein Wert zurückgegeben werden soll, verwenden Sie die Funktion MATCH, die ebenfalls für eine exakte Übereinstimmung konfiguriert ist (das letzte Argument ist auf 0 gesetzt):

    ÜBEREINSTIMMUNG(H2, A1:E1, 0)

    MATCH sucht den Wert in H2 über die Spaltenüberschriften (A1:E1) hinweg und gibt die relative Position der gefundenen Zelle zurück. In unserem Fall wird das Zieljahr (2010) in E1 gefunden, das an fünfter Stelle im Lookup-Array steht. Die Zahl 5 geht also an die col_index_num Argument von VLOOKUP:

    VLOOKUP(H1, A2:E4, 5, FALSE)

    VLOOKUP übernimmt den Wert von dort, findet eine exakte Übereinstimmung für seinen Suchwert in A2 und gibt einen Wert aus der 5. Spalte in derselben Zeile zurück, nämlich die Zelle E2.

    Wichtiger Hinweis: Damit die Formel richtig funktioniert, table_array (A2:E4) von VLOOKUP und lookup_array von MATCH (A1:E1) muss die gleiche Anzahl von Spalten haben, sonst wird die von MATCH an col_index_num nicht korrekt sein (entspricht nicht der Position der Spalte in table_array ).

    XLOOKUP-Funktion zum Suchen in Zeilen und Spalten

    Kürzlich hat Microsoft eine weitere Funktion in Excel eingeführt, die alle bestehenden Nachschlagefunktionen wie VLOOKUP, HLOOKUP und INDEX MATCH ersetzen soll. XLOOKUP kann u.a. die Schnittmenge einer bestimmten Zeile und Spalte betrachten:

    XLOOKUP( vlookup_wert , vlookup_spalten_bereich , XLOOKUP( hlookup_value , hlookup_row_range , Daten_Array ))

    Für unseren Beispieldatensatz lautet die Formel wie folgt:

    =XLOOKUP(H1, A2:A4, XLOOKUP(H2, B1:E1, B2:E4))

    Hinweis: Derzeit ist XLOOKUP eine Beta-Funktion, die nur für Office 365-Abonnenten verfügbar ist, die Teil des Office Insider-Programms sind.

    Wie diese Formel funktioniert

    Die Formel nutzt die Fähigkeit von XLOOKUP, eine ganze Zeile oder Spalte zurückzugeben. Die innere Funktion sucht in der Kopfzeile nach dem Zieljahr und gibt alle Werte für dieses Jahr zurück (in diesem Beispiel für das Jahr 1980). Diese Werte werden in die return_array Argument des äußeren XLOOKUPs:

    XLOOKUP(H1, A2:A4, {22000;25000;700}))

    Die äußere XLOOKUP-Funktion sucht in den Spaltenüberschriften nach dem Zieltier und gibt den Wert an derselben Position aus dem return_array zurück.

    SUMPRODUCT-Formel für die zweiseitige Suche

    Die Funktion SUMPRODUCT ist wie ein Schweizer Messer in Excel - sie kann so viele Dinge tun, die über ihren eigentlichen Zweck hinausgehen, insbesondere wenn es um die Auswertung mehrerer Kriterien geht.

    Um zwei Kriterien in Zeilen und Spalten zu suchen, verwenden Sie diese allgemeine Formel:

    SUMPRODUCT( vlookup_spalten_bereich = vlookup_wert ) * ( hlookup_row_range = hlookup_value ), Daten_Array )

    Um eine 2-Wege-Suche in unserem Datensatz durchzuführen, lautet die Formel wie folgt:

    =SUMMENPRODUKT((A2:A4=H1) * (B1:E1=H2), B2:E4)

    Die folgende Syntax funktioniert ebenfalls:

    =SUMMENPRODUKT((A2:A4=H1) * (B1:E1=H2) * B2:E4)

    Wie diese Formel funktioniert

    Im Kern der Formel werden zwei Nachschlagewerte mit den Zeilen- und Spaltenüberschriften verglichen (das Zieltier in H1 mit allen Tiernamen in A2:A4 und das Zieljahr in H2 mit allen Jahren in B1:E1):

    (A2:A4=H1) * (B1:E1=H2)

    Daraus ergeben sich 2 Arrays mit TRUE- und FALSE-Werten, wobei TRUE für Übereinstimmungen steht:

    {FALSE;FALSE;TRUE} * {FALSE,TRUE,FALSE,FALSE}

    Bei der Multiplikation werden die Werte TRUE und FALSE in 1 und 0 umgewandelt, und es entsteht ein zweidimensionales Array mit 4 Spalten und 3 Zeilen (die Zeilen werden durch Semikolon und die Spalten durch Komma getrennt):

    {0,0,0,0;0,0,0,0;0,1,0,0}

    Die Funktion SUMPRODUCT multipliziert die Elemente des obigen Arrays mit den Elementen von B2:E4 an denselben Positionen:

    {0,0,0,0;0,0,0,0;0,1,0,0} * {22000,13800,8500,3500;25000,23000,22000,20000;700,2000,2300,2500}

    Und da die Multiplikation mit Null Null ergibt, bleibt nur das Element, das der 1 in der ersten Reihe entspricht, übrig:

    SUMPRODUCT({0,0,0,0;0,0,0,0;0,2000,0,0})

    Schließlich addiert SUMPRODUCT die Elemente des resultierenden Arrays und gibt den Wert 2000 zurück.

    Hinweis: Wenn Ihre Tabelle mehr als eine Zeile oder/und Spaltenüberschriften mit demselben Namen hat, wird das endgültige Array mehr als eine Zahl außer Null enthalten, und alle diese Zahlen werden addiert. Als Ergebnis erhalten Sie eine Summe von Werten, die beide Kriterien erfüllen. Dadurch unterscheidet sich die SUMPRODUCT-Formel von INDEX MATCH MATCH und VLOOKUP, die die erste gefundene Übereinstimmung zurückgeben.

    Matrixsuche mit benannten Bereichen (explizite Schnittmenge)

    Eine weitere verblüffend einfache Möglichkeit, eine Matrixsuche in Excel durchzuführen, ist die Verwendung von benannten Bereichen, und zwar wie folgt:

    Teil 1: Spalten und Zeilen benennen

    Der schnellste Weg, jede Zeile und jede Spalte in Ihrer Tabelle zu benennen, ist der folgende:

    1. Wählen Sie die gesamte Tabelle aus (in unserem Fall A1:E4).
    2. Auf der Formeln auf der Registerkarte Definierte Namen Gruppe, klicken Sie auf Aus Auswahl erstellen oder drücken Sie die Tastenkombination Strg + Umschalt + F3.
    3. In der Namen aus Auswahl erstellen wählen Sie im Dialogfenster Obere Reihe und Linke Spalte, und klicken Sie auf OK.

    Dabei werden die Namen automatisch auf der Grundlage der Zeilen- und Spaltenüberschriften erstellt. Es gibt jedoch einige Vorbehalte:

    • Wenn Ihre Spalten- und/oder Zeilenüberschriften aus Zahlen bestehen oder bestimmte Zeichen enthalten, die in Excel-Namen nicht zulässig sind, werden die Namen für diese Spalten und Zeilen nicht erstellt. Um eine Liste der erstellten Namen zu sehen, öffnen Sie den Namensmanager ( Strg + F3 ). Wenn einige Namen fehlen, definieren Sie sie manuell, wie in Wie man einen Bereich in Excel benennt erklärt.
    • Wenn einige Ihrer Zeilen- oder Spaltenüberschriften Leerzeichen enthalten, werden diese z. B. durch Unterstriche ersetzt, Polar_bär .

    Für unsere Beispieltabelle hat Excel nur die Zeilennamen automatisch erstellt. Die Spaltennamen müssen manuell erstellt werden, da es sich bei den Spaltenüberschriften um Zahlen handelt. Um dies zu umgehen, können Sie den Zahlen einfach Unterstriche voranstellen, etwa _1990 .

    Als Ergebnis haben wir die folgenden benannten Bereiche:

    Teil 2: Erstellen einer Matrix-Lookup-Formel

    Um einen Wert am Schnittpunkt einer bestimmten Zeile und Spalte zu ziehen, geben Sie einfach eine der folgenden allgemeinen Formeln in eine leere Zelle ein:

    = zeilen_name spalten_name

    Oder andersherum:

    = spalten_name zeilen_name

    Um zum Beispiel die Population der Blauwale im Jahr 1990 zu ermitteln, ist die Formel so einfach wie:

    =Blauer_Wal _1990

    Falls Sie eine ausführlichere Anleitung benötigen, können Sie sich in den folgenden Schritten durch den Prozess führen lassen:

    1. Geben Sie in einer Zelle, in der das Ergebnis erscheinen soll, das Gleichheitszeichen (=) ein.
    2. Beginnen Sie mit der Eingabe des Namens der Zielzeile, beispielsweise, Blau_Wal Nachdem Sie ein paar Zeichen eingegeben haben, zeigt Excel alle vorhandenen Namen an, die Ihrer Eingabe entsprechen. Doppelklicken Sie auf den gewünschten Namen, um ihn in Ihre Formel einzugeben:
    3. Geben Sie nach dem Zeilennamen ein Raum die als die Schnittmengenoperator in diesem Fall.
    4. Geben Sie den Namen der Zielspalte ein ( _1990 in unserem Fall).
    5. Sobald die Zeilen- und Spaltennamen eingegeben sind, markiert Excel die entsprechende Zeile und Spalte in Ihrer Tabelle, und Sie drücken die Eingabetaste, um die Formel zu vervollständigen:

    Die Matrixsuche ist abgeschlossen, und der folgende Screenshot zeigt das Ergebnis:

    So sieht man in Excel in Zeilen und Spalten nach. Ich danke Ihnen für die Lektüre und hoffe, Sie nächste Woche in unserem Blog begrüßen zu dürfen!

    Verfügbare Downloads

    2-dimensionale Lookup-Beispiel-Arbeitsmappe

    Michael Brown ist ein begeisterter Technologie-Enthusiast mit einer Leidenschaft für die Vereinfachung komplexer Prozesse mithilfe von Softwaretools. Mit mehr als einem Jahrzehnt Erfahrung in der Technologiebranche hat er seine Fähigkeiten in Microsoft Excel und Outlook sowie Google Sheets und Docs verfeinert. Michaels Blog widmet sich dem Teilen seines Wissens und seiner Expertise mit anderen und bietet leicht verständliche Tipps und Tutorials zur Verbesserung von Produktivität und Effizienz. Egal, ob Sie ein erfahrener Profi oder ein Anfänger sind, Michaels Blog bietet wertvolle Einblicke und praktische Ratschläge, wie Sie diese wichtigen Softwaretools optimal nutzen können.