Inhaltsverzeichnis
In diesen Beispielen lernen Sie, wie Sie mehrere Kriterien in Vlookup abfragen, eine bestimmte Instanz oder alle Übereinstimmungen zurückgeben, dynamische Vlookups in mehreren Blättern durchführen und vieles mehr.
Dies ist der zweite Teil der Serie, der Ihnen helfen wird, die Möglichkeiten von Excel VLOOKUP zu nutzen. Die Beispiele setzen voraus, dass Sie wissen, wie diese Funktion funktioniert. Falls nicht, ist es logisch, mit den grundlegenden Anwendungen von VLOOKUP in Excel zu beginnen.
Bevor ich fortfahre, möchte ich Sie kurz an die Syntax erinnern:
VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])Nun, da alle auf derselben Seite stehen, wollen wir uns die fortgeschrittenen Beispiele für VLOOKUP-Formeln genauer ansehen:
Wie man mehrere Kriterien in Vlookup berücksichtigt
Die Excel-Funktion VLOOKUP ist sehr hilfreich, wenn es darum geht, eine Datenbank nach einem bestimmten Wert zu durchsuchen. Allerdings fehlt ihr ein wichtiges Merkmal - ihre Syntax erlaubt nur einen Nachschlagewert. Was aber, wenn Sie mit mehreren Bedingungen nachschlagen wollen? Es gibt einige verschiedene Lösungen, aus denen Sie wählen können.
Formel 1: VLOOKUP mit zwei Kriterien
Angenommen, Sie haben eine Liste von Aufträgen und möchten die Menge anhand von 2 Kriterien ermitteln, Name des Kunden und Produkt Erschwerend kommt hinzu, dass jeder Kunde mehrere Produkte bestellt hat, wie aus der nachstehenden Tabelle hervorgeht:
Eine gewöhnliche VLOOKUP-Formel funktioniert in dieser Situation nicht, da sie die erste gefundene Übereinstimmung auf der Grundlage eines einzigen von Ihnen angegebenen Suchwerts zurückgibt.
Um dies zu umgehen, können Sie eine Hilfsspalte hinzufügen und die Werte aus zwei Suchspalten verketten ( Kunde und Produkt Es ist wichtig, dass die Hilfsspalte die ganz links Spalte in der Tabellenmatrix, weil Excel VLOOKUP dort immer nach dem Nachschlagewert sucht.
Fügen Sie also eine Spalte auf der linken Seite Ihrer Tabelle hinzu und kopieren Sie die unten stehende Formel in diese Spalte. Dadurch wird die Hilfsspalte mit den Werten aus den Spalten B und C aufgefüllt (das Leerzeichen ist zur besseren Lesbarkeit dazwischen verkettet):
=B2&" "&C2
Verwenden Sie dann eine Standard-VLOOKUP-Formel und setzen Sie beide Kriterien in die lookup_value Argument, getrennt durch ein Leerzeichen:
=VLOOKUP("Jeremy Sweets", A2:D11, 4, FALSE)
Oder Sie geben die Kriterien in getrennte Zellen ein (in unserem Fall G1 und G2) und verketten diese Zellen:
=VLOOKUP(G1&" "&G2, A2:D11, 4, FALSE)
Da wir einen Wert aus Spalte D zurückgeben wollen, die die vierte im Tabellen-Array ist, verwenden wir 4 für col_index_num . die bereich_lookup wird auf FALSE gesetzt, damit Vlookup eine exakte Übereinstimmung findet. Der folgende Screenshot zeigt das Ergebnis:
Falls sich Ihre Nachschlagetabelle in anderes Blatt fügen Sie den Namen des Blattes in Ihre VLOOKUP-Formel ein, zum Beispiel:
=VLOOKUP(G1&" "&G2, Aufträge!A2:D11, 4, FALSE)
Alternativ können Sie auch einen benannten Bereich für die Nachschlagetabelle erstellen (z. B., Bestellungen ), damit die Formel leichter zu lesen ist:
=VLOOKUP(G1&" "&G2, Aufträge, 4, FALSE)
Weitere Informationen finden Sie unter Vlookup von einem anderen Blatt in Excel.
Hinweis: Damit die Formel korrekt funktioniert, müssen die Werte in der Hilfsspalte genau so verkettet werden wie in der Spalte lookup_value Zum Beispiel haben wir ein Leerzeichen verwendet, um die Kriterien sowohl in der Hilfsspalte (B2&" "&C2) als auch in der VLOOKUP-Formel (G1&" "&G2) zu trennen.
Formel 2: Excel VLOOKUP mit mehreren Bedingungen
Theoretisch können Sie mit dem obigen Ansatz mehr als zwei Kriterien in Vlookup abbilden. Es gibt jedoch einige Einschränkungen: Erstens ist ein Nachschlagewert auf 255 Zeichen begrenzt, und zweitens erlaubt das Design des Arbeitsblatts möglicherweise nicht das Hinzufügen einer Hilfsspalte.
Glücklicherweise bietet Microsoft Excel oft mehr als einen Weg, um dasselbe zu tun: Um mehrere Kriterien zu vergleichen, können Sie entweder eine INDEX MATCH-Kombination oder die kürzlich in Office 365 eingeführte XLOOKUP-Funktion verwenden.
Um zum Beispiel auf der Grundlage von 3 verschiedenen Werten zu suchen ( Datum , Name des Kunden und Produkt ), verwenden Sie eine der folgenden Formeln:
=INDEX(D2:D11, MATCH(1, (G1=A2:A11) * (G2=B2:B11) * (G3=C2:C11), 0))
=XLOOKUP(1, (G1=A2:A11) * (G2=B2:B11) * (G3=C2:C11), D2:D11)
Wo:
- G1 ist Kriterium 1 (Datum)
- G2 ist Kriterium 2 (Kundenname)
- G3 ist Kriterium 3 (Produkt)
- A2:A11 ist Nachschlagebereich 1 (Daten)
- B2:B11 ist der Nachschlagebereich 2 (Kundennamen)
- C2:C11 ist Nachschlagebereich 3 (Produkte)
- D2:D11 ist der Rückgabebereich (Menge)
Hinweis: In allen Versionen außer Excel 365 sollte INDEX MATCH als CSE-Array-Formel durch Drücken von Strg + Shift + Enter eingegeben werden. In Excel 365, das dynamische Arrays unterstützt, funktioniert es auch als reguläre Formel.
Eine ausführliche Erklärung der Formeln finden Sie unter:
- XLOOKUP mit mehreren Kriterien
- INDEX MATCH Formel mit mehreren Kriterien
Verwendung von VLOOKUP zur Ermittlung der 2., 3. oder n-ten Übereinstimmung
Wie Sie bereits wissen, kann Excel VLOOKUP nur einen übereinstimmenden Wert abrufen, genauer gesagt, es gibt die erste gefundene Übereinstimmung zurück. Aber was ist, wenn es mehrere Übereinstimmungen in Ihrem Lookup-Array gibt und Sie die zweite oder dritte Instanz abrufen möchten? Die Aufgabe klingt ziemlich kompliziert, aber es gibt eine Lösung!
Formel 1: Vlookup N-te Instanz
Angenommen, Sie haben Kundennamen in einer Spalte, die von ihnen gekauften Produkte in einer anderen, und Sie suchen das 2. oder 3. von einem bestimmten Kunden gekaufte Produkt.
Am einfachsten ist es, eine Hilfsspalte auf der linken Seite der Tabelle hinzuzufügen, wie im ersten Beispiel, aber dieses Mal werden wir sie mit Kundennamen und Vorgangsnummern füllen wie " Unbekannter1 ", " Unbekannter2 ", usw.
Um das Vorkommen zu ermitteln, verwenden Sie die Funktion COUNTIF mit einer gemischten Bereichsreferenz (die erste Referenz ist absolut und die zweite relativ, z. B. $B$2:B2). Da sich die relative Referenz je nach Position der Zelle, in die die Formel kopiert wird, ändert, wird sie in Zeile 3 zu $B$2:B3, in Zeile 4 - $B$2:B4 usw.
Verkettet mit dem Kundennamen (B2) sieht die Formel folgendermaßen aus:
=B2&COUNTIF($B$2:B2, B2)
Die obige Formel wird in A2 eingegeben und dann in so viele Zellen wie nötig kopiert.
Geben Sie dann den Zielnamen und die Nummer des Vorkommens in getrennte Zellen (F1 und F2) ein und verwenden Sie die folgende Formel, um ein bestimmtes Vorkommen zu suchen:
=VLOOKUP(F1&F2, A2:C11, 3, FALSE)
Formel 2: Vlookup 2. Auftreten
Wenn Sie nach der 2. Instanz des Lookup-Wertes suchen, können Sie auf die Hilfsspalte verzichten und stattdessen das Tabellenarray dynamisch mit der Funktion INDIRECT in Verbindung mit MATCH erzeugen:
=VLOOKUP(E1, INDIRECT("A"&(MATCH(E1, A2:A11, 0)+2)&":B11"), 2, FALSE)
Wo:
- E1 ist der Nachschlagewert
- A2:A11 ist der Nachschlagebereich
- B11 ist die letzte Zelle (unten rechts) der Nachschlagetabelle
Bitte beachten Sie, dass die obige Formel für einen speziellen Fall geschrieben wurde, in dem die Datenzellen in der Nachschlagetabelle in Zeile 2 beginnen. Wenn sich Ihre Tabelle in der Mitte des Blattes befindet, verwenden Sie diese universelle Formel, wobei A1 die Zelle oben links in der Nachschlagetabelle ist, die eine Spaltenüberschrift enthält:
=VLOOKUP(E1, INDIRECT("A"&(MATCH(E1, A2:A11, 0)+1+ROW(A1))&":B11"), 2, FALSE)
Wie diese Formel funktioniert
Hier ist der wichtigste Teil der Formel, die eine dynamischer vlookup-Bereich :
INDIRECT("A"&(MATCH(E1, A2:A11, 0)+2)&":B11")
Die Funktion MATCH, die für eine exakte Übereinstimmung (0 im letzten Argument) konfiguriert ist, vergleicht den Zielnamen (E1) mit der Namensliste (A2:A11) und gibt die Position der ersten gefundenen Übereinstimmung zurück, die in unserem Fall 3 ist. Diese Zahl wird als Startzeilenkoordinate für den vlookup-Bereich verwendet, also addieren wir 2 dazu (+1, um die erste Instanz auszuschließen und +1, um Zeile 1 mit den Spaltenüberschriften auszuschließen).Alternativ können Sie auch 1+ROW(A1) verwenden, um die erforderliche Anpassung automatisch auf der Grundlage der Position der Kopfzeile (in unserem Fall A1) zu berechnen.
Als Ergebnis erhalten wir die folgende Textzeichenfolge, die INDIRECT in einen Bereichsbezug umwandelt:
INDIRECT("A"&5&":B11") -> A5:B11
Dieser Bereich reicht bis zum table_array Argument von VLOOKUP, so dass die Suche in Zeile 5 beginnt und die erste Instanz des Nachschlagewerts ausgelassen wird:
VLOOKUP(E1, A5:B11, 2, FALSE)
Vlookup und Rückgabe mehrerer Werte in Excel
Die Excel-Funktion VLOOKUP ist so konzipiert, dass sie nur eine Übereinstimmung zurückgibt. Gibt es eine Möglichkeit, mehrere Instanzen von Vlookup zu erstellen? Ja, die gibt es, wenn auch nicht ganz einfach. Dazu müssen mehrere Funktionen wie INDEX, SMALL und ROW kombiniert werden, um eine Array-Formel zu erstellen.
Das folgende Beispiel kann alle Vorkommen des Suchwerts F2 im Suchbereich B2:B16 finden und mehrere Übereinstimmungen aus Spalte C zurückgeben:
{=IFERROR(INDEX($C$2:$C$11, SMALL(IF($F$1=$B$2:$B$11, ROW($C$2:$C$11)-1,""), ROW()-1)),"")}
Es gibt 2 Möglichkeiten, die Formel in Ihr Arbeitsblatt einzugeben:
- Geben Sie die Formel in die erste Zelle ein, drücken Sie die Tastenkombination Strg + Umschalt + Eingabe, und ziehen Sie sie dann nach unten in einige weitere Zellen.
- Markieren Sie mehrere nebeneinander liegende Zellen in einer einzigen Spalte (F1:F11 im Screenshot unten), geben Sie die Formel ein und drücken Sie Strg + Umschalt + Enter, um sie abzuschließen.
In jedem Fall sollte die Anzahl der Zellen, in die Sie die Formel eingeben, gleich oder größer sein als die maximale Anzahl der möglichen Übereinstimmungen.
Eine ausführliche Erläuterung der Formellogik und weitere Beispiele finden Sie unter Wie man in Excel mehrere Werte mit VLOOKUP verknüpft.
Vlookup in Zeilen und Spalten (zweiseitiges Lookup)
Bidirektionale Suche (alias Matrix-Suche oder 2-dimensionale Suche Es gibt verschiedene Möglichkeiten, zweidimensionale Lookups in Excel durchzuführen, aber da der Schwerpunkt dieses Tutorials auf der VLOOKUP-Funktion liegt, werden wir sie natürlich verwenden.
In diesem Beispiel nehmen wir die unten stehende Tabelle mit den monatlichen Verkäufen und erstellen eine VLOOKUP-Formel, um die Verkaufszahlen für einen bestimmten Artikel in einem bestimmten Monat abzurufen.
Mit Positionsnamen in A2:A9, Monatsnamen in B1:F1, der Zielposition in I1 und dem Zielmonat in I2 lautet die Formel wie folgt:
=VLOOKUP(I1, A2:F9, MATCH(I2, A1:F1, 0), FALSE)
Wie diese Formel funktioniert
Der Kern der Formel ist die Standard-VLOOKUP-Funktion, die nach einer exakten Übereinstimmung mit dem Nachschlagewert in I1 sucht. Da wir aber nicht wissen, in welcher Spalte genau die Verkäufe für einen bestimmten Monat stehen, können wir die Spaltennummer nicht direkt in die col_index_num Um diese Spalte zu finden, verwenden wir die folgende MATCH-Funktion:
ÜBEREINSTIMMUNG(I2, A1:F1, 0)
Übersetzt ins Englische bedeutet die Formel: Suche den I2-Wert in A1:F1 und gib seine relative Position im Array zurück. Durch die Angabe von 0 für das 3. Argument weist man MATCH an, den Wert zu finden, der genau dem Suchwert entspricht (das ist so, als würde man FALSE für die bereich_lookup Argument von VLOOKUP).
Seit März in der 4. Spalte des Lookup-Arrays steht, gibt die MATCH-Funktion 4 zurück, was direkt in die col_index_num Argument von VLOOKUP:
VLOOKUP(I1, A2:F9, 4, FALSE)
Bitte beachten Sie, dass die Monatsnamen zwar in Spalte B beginnen, wir aber A1:I1 für das Lookup-Array verwenden, damit die von MATCH zurückgegebene Nummer der Position der Spalte in table_array von VLOOKUP.
Weitere Möglichkeiten, die Matrixsuche in Excel durchzuführen, finden Sie unter INDEX MATCH MATCH und andere Formeln für die 2-dimensionale Suche.
Wie man mehrere Vlookups in Excel durchführt (verschachteltes Vlookup)
Manchmal kann es vorkommen, dass Ihre Haupttabelle und die Nachschlagetabelle keine einzige Spalte gemeinsam haben, so dass Sie keine Vlookup-Verknüpfung zwischen den beiden Tabellen durchführen können. Es gibt jedoch eine andere Tabelle, die die gesuchten Informationen nicht enthält, aber eine gemeinsame Spalte mit der Haupttabelle und eine weitere gemeinsame Spalte mit der Nachschlagetabelle hat.
Die folgende Abbildung veranschaulicht die Situation:
Das Ziel ist es, die Preise in die Haupttabelle zu kopieren, basierend auf Artikel-IDs Das Problem ist, dass die Tabelle, die die Preise enthält, nicht über die Artikel-IDs was bedeutet, dass wir zwei Vlookups in einer Formel durchführen müssen.
Der Einfachheit halber erstellen wir zunächst ein paar benannte Bereiche:
- Die Nachschlagetabelle 1 heißt Produkte (D3:E10)
- Die Nachschlagetabelle 2 heißt Preise ( G3:H10 )
Die Tabellen können sich auf demselben oder auf verschiedenen Arbeitsblättern befinden.
Und nun werden wir die sogenannte doppeltes Vlookup auch bekannt als verschachteltes Vlookup .
Erstellen Sie zunächst eine VLOOKUP-Formel, um den Produktnamen in der Lookup-Tabelle 1 zu finden (mit dem Namen Produkte ) auf der Grundlage der Artikel-ID (A3):
=VLOOKUP(A3, Produkte, 2, FALSE)
Als nächstes setzen Sie die obige Formel in die lookup_value Argument einer anderen VLOOKUP-Funktion, um die Preise aus der Lookup-Tabelle 2 (namens Preise ) auf der Grundlage des Produktnamens, der von dem verschachtelten VLOOKUP zurückgegeben wird:
=VLOOKUP(VLOOKUP(A3, Produkte, 2, FALSE), Preise, 2, FALSE)
Der folgende Screenshot zeigt unsere verschachtelte Vlookup-Formel in Aktion:
Dynamisches Vlookup für mehrere Blätter
Es kann vorkommen, dass Sie Daten in demselben Format über mehrere Arbeitsblätter verteilt haben und Sie Daten aus einem bestimmten Blatt in Abhängigkeit vom Schlüsselwert in einer bestimmten Zelle abrufen möchten.
Anhand eines Beispiels wird dies vielleicht leichter verständlich: Angenommen, Sie haben mehrere regionale Verkaufsberichte im gleichen Format und möchten die Verkaufszahlen für ein bestimmtes Produkt in bestimmten Regionen ermitteln:
Wie im vorherigen Beispiel beginnen wir mit der Definition einiger Namen:
- Der Bereich A2:B5 im CA-Blatt heißt CA_Verkauf .
- Der Bereich A2:B5 im Blatt FL heißt FL_Verkauf .
- Der Bereich A2:B5 im KS-Blatt heißt KS_Verkauf .
Wie Sie sehen können, haben alle genannten Bereiche einen gemeinsamen Teil ( Vertrieb ) und einzigartige Teile ( CA , FL , KS Bitte stellen Sie sicher, dass Sie Ihre Bereiche in ähnlicher Weise benennen, da dies für die Formel, die wir erstellen werden, unerlässlich ist.
Formel 1: INDIRECT VLOOKUP zum dynamischen Abrufen von Daten aus verschiedenen Blättern
Wenn Ihre Aufgabe darin besteht, Daten aus mehreren Blättern abzurufen, ist eine VLOOKUP INDIRECT-Formel die beste Lösung - kompakt und leicht zu verstehen.
Für dieses Beispiel wird die Übersichtstabelle wie folgt aufgebaut:
- Geben Sie die Produkte von Interesse in A2 und A3 ein. Das sind unsere Nachschlagewerte.
- Geben Sie die eindeutigen Teile der genannten Bereiche in B1, C1 und D1 ein.
Und nun verketten wir die Zelle mit dem eindeutigen Teil (B1) mit dem gemeinsamen Teil ("_Sales") und geben die resultierende Zeichenfolge an INDIRECT weiter:
INDIRECT(B$1&"_Umsätze")
Die Funktion INDIRECT wandelt die Zeichenkette in einen für Excel verständlichen Namen um, den Sie in das Feld table_array Argument von VLOOKUP:
=VLOOKUP($A2, INDIRECT(B$1&"_Sales"), 2, FALSE)
Die obige Formel geht nach B2, und dann kopieren Sie sie nach unten und rechts.
Bitte beachten Sie, dass wir im Nachschlagewert ($A2) die Spaltenkoordinate mit einem absoluten Zellbezug gesperrt haben, damit die Spalte fest bleibt, wenn die Formel nach rechts kopiert wird. Im B$1-Bezug haben wir die Zeile gesperrt, weil wir wollen, dass sich die Spaltenkoordinate ändert und einen entsprechenden Namensteil für INDIRECT liefert, je nach der Spalte, in die die Formel kopiert wird:
Wenn Ihre Haupttabelle anders organisiert ist, die Lookup-Werte in einer Zeile und eindeutige Teile der Bereichsnamen in einer Spalte, dann sollten Sie die Zeilenkoordinate im Lookup-Wert (B$1) und die Spaltenkoordinate in den Namensteilen ($A2) sperren:
=VLOOKUP(B$1, INDIRECT($A2&"_Sales"), 2, FALSE)
Formel 2: VLOOKUP und verschachtelte IFs zum Nachschlagen in mehreren Blättern
Wenn Sie nur zwei oder drei Nachschlagewerke haben, können Sie eine recht einfache VLOOKUP-Formel mit verschachtelten WENN-Funktionen verwenden, um das richtige Blatt auf der Grundlage des Schlüsselwerts in einer bestimmten Zelle auszuwählen:
=VLOOKUP($A2, IF(B$1="CA", CA_Umsatz, IF(B$1="FL", FL_Umsatz, IF(B$1="KS", KS_Umsatz,""))), 2, FALSE)
Dabei ist $A2 der Nachschlagewert (Artikelbezeichnung) und B$1 der Schlüsselwert (Zustand):
In diesem Fall müssen Sie nicht unbedingt Namen definieren und können externe Referenzen verwenden, um auf ein anderes Blatt oder eine andere Arbeitsmappe zu verweisen.
Weitere Beispiele für Formeln finden Sie unter Wie man VLOOKUP über mehrere Blätter in Excel verteilt.
Das ist die Verwendung von VLOOKUP in Excel. Ich danke Ihnen für die Lektüre und hoffe, Sie nächste Woche in unserem Blog begrüßen zu dürfen!
Übungsheft zum Herunterladen
Beispiele für erweiterte VLOOKUP-Formeln (.xlsx-Datei)