Wer Excel 2019 zusammen mit einem Microsoft 365 Abonnement hat oder Excel 2021 sein Eigen nennt, hat einige neue Funktionen bekommen. Eine davon ist eine Erweiterung des SVERWEIS. Der neue XVERWEIS funktioniert generell genauso wie der SVERWEIS, ist aber flexibler und auch mächtiger bei der "exakten Übereinstimmung", weil es mehr Filtermöglichkeiten gibt und bietet weitere starke Möglichkeiten. Lassen Sie mich einige Beispiele zur Erklärung aufzeigen:

 

Im SVERWEIS wurde stets die erste Spalte nach dem Suchkriterium durchsucht und es musste dann angegeben werden, welche Spalte das Ergebnis zurückliefert. Beim XVERWEIS geben Sie nicht mehr die ganze Matrix an, sondern splitten in die Spalte mit dem Suchergebnis und in der Spalte der Rückgabewerte.

Angenommen Sie haben solch eine Tabelle und wollen herausbekommen, wie viel Provision bei einem bestimmten Umsatz anfällt:

xverweis 02Mit dem SVERWEIS hätten Sie nun bereits das Problem, dass die beiden Spalten verkehrt herum angeordnet sind. Mit dem XVERWEIS hingegen, ist das egal, da Sie nie die ganze Matrix angeben.

Aber konkret: In E1 trage ich das zu suchende Kriterium ein. Im Beispiel: 122,- € und in Zelle E2 ermittel ich mit dem XVERWEIS die Provision.

Schritt für Schritt:

=XVERWEIS(Suchkriterium; Suchmatrix; Rückgabematrix)

Das Suchkriterium steht in E1 - also 122,00 € im Beispiel. Finden kann man diesen Wert in Spalte B, welches denn auch die Suchmatrix ist. In meinem Beispiel ist das B2:B6.

Die Rückgabe erfolgt in Spalte A. Genauer: A2:A6

Somit lautet der vordere Teil des Xverweises:

=XVERWEIS(E1;B2:B6;A2:A6)

Das sind die drei Pflichtangaben und somit funktioniert der XVERWEIS bereits einwandfrei. Allerdings würde es an dieser Stelle die Meldung "NV" geben - Nicht Vorhanden. Das liegt daran, dass, im Gegensatz zum SVERWEIS, die Standardeinstellung beim XVERWEIS ist, dass eine exakte Übereinstimmung vorliegen muss, was aber bei dieser Abfrage nicht gegeben ist. Wir brauchen hier den nächst kleineren Wert als Ergebnis.

Also müssen wir uns mit den optionalen Werten etwas genauer beschäftigen:

Wenn es beispielsweise keinen Wert gibt, der gefunden werden kann, dann können Sie konkret etwas angeben. In meinem Beispiel findet sich kein Wert für einen Umsatz unter 100,- €. Wer weniger umgesetzt hat, bekommt 0% Provision. Genau diese 0 gebe ich ein bei "[wenn_nicht_gefunden]". Sie können stattdessen auch einen Text ausgeben. Beispielsweise einen "-" oder "Zuwenig für eine Provision". Alles, was zwischen Anführungsstrichen steht, wird auch genauso ausgeben:

=XVERWEIS(E1;B2:B6;A2:A6;0)

Im "[Vergleichsmodus]" geben Sie vor, wie gefunden werden soll. Klingt etwas merkwürdig, wenn ich das so formuliere, aber erinnern Sie sich: im SVERWEIS wurde stets der nächst kleinere Wert ermittelt, wenn keine exakte Übereinstimmung vorlag. Andersherum erforderte eine Neusortierung der Reihenfolge. Beim XVERWEIS können Sie die Reihenfolge explizit angeben: "-1" nimmt den nächst kleineren Wert und "1" den nächst höheren. Schließlich ist es ein Unterschied, ob ich bei 122,- € Umsatz 5% oder 10% bekomme. In meinem Beispiel lege ich fest, dass bei nicht exakter Übereinstimmung, der nächst kleinere Wert genommen wird. Also die 5% Provision ermittelt werden:

=XVERWEIS(E1;B2:B6;A2:A6;0;-1)

xverweis 04Zu guter Letzt können Sie die Richtung der Suche vorgeben - den "[Suchmodus]": Von oben nach unten oder umgekehrt und eine Binärsuche gibt es auch noch. In meinem Beispiel möchte ich, dass von oben nach unten gesucht wird. Interessant ist dabei, dass der XVERWEIS von selbst die Tabelle quasi sortiert. Im SVERWEIS musste die Tabelle vorsortiert werden mit aufsteigenden Werten. Dem XVERWEIS ist es egal, in welcher Reihenfolge die Werte stehen. Sortiere ich meine Beispieltabelle beispielsweise wie nebenstehend um, wird dennoch das richtige Ergebnis zurückgeliefert!

Somit könnte ja eigentlich die Suchreihenfolge egal sein. Bei dieser kleinen Beispieltabelle ist es das auch. Wird die Tabelle aber größer, könnte die passende Suchreihenfolge durchaus Zeit sparen.

Wenn Sie hingegen eine wirklich große Tabelle haben, die durchsucht werden soll, dann bietet sich die Binärsuche an. Denn die ist wirklich schnell! Der Nachteil allerdings ist, dass Sie die Tabelle wieder vorsortieren müssen. Wahlweise in aufsteigender oder in absteigender Reihenfolge. Also so, wie Sie es vom SVERWEIS her kennen.

Vom ersten zum letzten Element entspricht der Zahl "1":

=XVERWEIS(E1;B2:B6;A2:A6;0;-1;1)

Damit ergibt sich bei meinem kleinen Beispiel die Gesamtfunktion:

=XVERWEIS(E1;B2:B6;A2:A6;0;-1;1)

Wenn Sie ein exaktes Suchkriterium haben, kann der XVERWEIS sehr kurz eingegeben werden. Angenommen, Sie haben ein kleines Lager mit Spielzeugen und benötigen den Lagerbestand:

xverweis 03

Hier ist nun die Suchmatrix in Spalte A und die Rückgabematrix in Spalte B. Daraus ergibt sich:

=XVERWEIS(E1;A2:A9;B2:B9)

Und das funktioniert auch einwandfrei! Beim Wasserball wird als Ergebnis der Wert 30 zurückgeliefert. Mehr benötigen Sie nicht, um alles zu finden. Wenn Sie sich jedoch (nur mal angenommen) mit der Schreibweise einiger Produkte im Unklaren sind oder vielleicht auch nicht genau wissen, was alles im Lager ist, haben Sie die Möglichkeiten, verschiedene Filter anzugeben. Wenn Sie im letzten optionalen Übergabewert "[Suchmodus]" den Wert "2" eintragen, können Sie in der Zelle mit dem Suchkriterium verschiedene Filter setzen. Angenommen Sie möchten nach einem Produkt suchen, in dem die Zeichenfolge "assel" vorkommt (das könnte eine "Rassel", "Kellerassel" oder "Kassel" sein), dann geben Sie in Zelle E1 die "assel" mit einem Sternchen am Anfang ein:

*assel

Das Sternchen steht für eine beliebige Anzahl Zeichen. Somit werden nun alle Produkte mit einem "assel" am Ende gefunden werden. In meinem kleinen Beispiel wird so ein Produkt namens "Kassel" gefunden und der Lagerbestand zurückgegeben.

Das Sternchen nennt sich Platzhalter. Und davon gibt es noch ein paar weitere, die Sie benutzen können:

Platzhalterzeichen  Erklärung  Beispiele
 * Steht für eine beliebige Anzahl Zeichen  *assel = Kassel, Kellerassel, Rassel, ...
 ? Steht für exakt ein beliebiges Zeichen ?assel = Kassel, Rassel, ...
~ Damit werden Ausnahmen gekennzeichnet. Sie können damit vermeintliche Platzhalter ausschließen und somit zu einem zu suchenden Zeichen machen ~*alle = *alle (Durch die Welle wird das Sternchen als Platzhalter ausgeschlossen)

 

Sie können die Platzhalter beliebig mischen. Ein paar konkrete Beispiele:

  • "*ball" findet den ersten Ball, also den "Wasserball". Es sei denn Sie suchen von unten nach oben!
  • "*dball" findet sicher den "Strandball", denn der Wasserball hat kein "d" vor dem ball.
  • "Kassel" findet auch einwandfrei "Kassel".
  • ?assel" würde als erstes die "Rassel" finden. Es sei denn, Sie lassen von unten nach oben suchen: Dann wird zuerst "Kassel" gefunden.
  • "?asse" findet die "Tasse"
  • ~*asse findet das letzte Produkt in meiner Beispieltabelle: Die "asse" mit dem Sternchen davor: "*asse".
  • ?ass* findet "Kassel", "Rassel", "Tasse", "Wasser"
  • *ass* findet "Kassel", "Rassel", "Tasse", "Wasser" und die "Kellerassel"

Der Stern (*) steht für mehrere Zeichen, das "?" für nur ein Zeichen.

 

Eine kleine Zusammenfassung:

Dem XVERWEIS ist es egal, wo die zu suchenden Inhalte stehen und welche Spalte das Ergebnis zurückliefert. Wenn Sie nicht die Binärsuche benötigen, braucht eine Tabelle nicht vorsortiert zu werden. Durch Platzhalter kann intensiv gesucht werden.