SVERWEIS nach beiden Seiten

SVERWEIS nach links und rechts
mit Power Query

Es ist bekannt, dass die Funktion SVERWEIS() nur nach rechts suchen kann, also mit einem positiven Index. Ein negativer Index ist zwar über Umwege mit der VERWEIS()-Funktion in der Matrix-Variante möglich, aber nach Aussage Microsoft sollte diese Möglichkeit nicht mehr verwendet werden. Und ich gehe davon aus, dass mit jeder neueren Version des Excel die Warnung vor der Verwendung immer deutlicher wird.

Mittels Power Query (in Excel 2016 Abrufen und transformieren) ist es mit wenigen Mausklicks möglich, einen Ersatz für den SVERWEIS zu finden und als angenehmen Nebeneffekt auch gleich den negativen Index mitzunehmen.

Voraussetzungen

Um das zu erreichen, gibt es wenige Voraussetzungen. Sie müssen Excel in der Windows-Version vorliegen haben, Power Query muss installiert sein (ab 2016 ist das integriert) und die Daten müssen ohne komplette Leerzeilen vorliegen. Mehr bedarf es nicht.

▲ nach oben …

Der Ablauf

Laden Sie zu Beginn erst einmal diese Datei herunter und öffnen Sie diese in Excel. Sie erkennen in den Basisdaten eine minimalistische Rechnung, eher eine Aufstellung. Die kann so beispielsweise von einer Datenbank exportiert worden sein.

Import-Daten für eine Rechnung

Import-Daten für eine Rechnung

Der entscheidende Punkt ist, dass nur die Produktnummer eingetragen ist und die Bezeichnung als auch der Preis fehlt. Diese beiden Werte sind in in einem weiteren Arbeitsblatt aufgeführt:

Daten für die Verknüpfung mit der Rechnung

Daten für die Verknüpfung mit der Rechnung

Dass es normalerweise erheblich mehr Produkte sind, versteht sich von alleine. Hier ist es der Übersichtlichkeit geschuldet, dass es nur diese 7 Artikel sind. Wichtig ist, dass die Produktnummer für die Verknüpfung verwendet wird. Dass diese nicht in der ersten Spalte der Liste steht, ist von mir extra so eingerichtet, um den negativen Index, den Verweis nach links darzustellen . Und die Anordnung soll natürlich so bleiben, wie sie ist.

Eine weitere wichtige Voraussetzung für dieses Vorhaben ist, dass alle zu nutzenden Daten, also die Basis- als auch die Referenzdaten als Intelligente Tabelle vorliegen. Die Basisdaten liegen in dieser Form vor. Sie erkennen das daran, dass der Menüpunkt Tabellentools sichtbar ist, wenn der Cursor (die aktive Zelle) im Datenbereich steht. Die Referenzdaten im Blatt Produkte sind noch nicht als Tabelle formatiert. Das muss als erstes geschehen. Wie Sie das machen, sei Ihnen überlassen. Ob über das Menü oder Tastenkombination, das Ergebnis ist außer der Optik immer gleich. Ich verwende stets StrgL (wie Liste) oder StrgT (wie Tabelle).

▲ nach oben …

OK, jetzt sind beide zu verknüpfenden Datenblöcke im Tabellen-Format. Das Arbeitsblatt Produkte ist das aktuelle und die aktive Zelle ist irgendwo im Datenbereich. Je nach Excel-Version werden Sie nun in die Power Query-Funktionalität herstellen. In Excel 2010/2013 ist Power Query ja ein eigenständiger Menüpunkt, in Excel 2016 finden Sie die entsprechenden Auswahlen beim Menüpunkt Daten.

Jetzt im Menüband bei den Icons auf Aus Tabelle (bei 2010/13 Von Tabelle) klicken und es öffnet sich ein neues Fenster mit dem Abfrage-Editor:

Der Abfrage-Editor (Teil des Fensters)

Der Abfrage-Editor (Teil des Fensters)

An dieser Stelle sollten Sie die Gelegenheit nutzen und der künftigen Tabelle einen sinnvollen Namen geben. Rechts im Editor-Fenster sehen Sie den Bereich mit den Abfrage-Einstellungen:

Umbenennen des Abfrage-Ergebnisses

Umbenennen des Abfrage-Ergebnisses

Löschen Sie hier den Namen Tabelle1 und tragen dafür tbl_Produkte ein. Das war erst einmal alles. Schließen Sie den Editor, indem Sie im Menüband auf das Symbol Schließen und laden klicken. Es wurde ein neues Tabellenblatt angelegt, wo die Tabelle in formatierter Form steht. Außerdem zeigt sich rechts im Anwendungs-Fenster der Bereich mit den Arbeitsmappenabfragen:

Der Bereich der Abfragen

Der Bereich der Abfragen

Wechseln Sie nun zum Sheet Basisdaten. Auch hier achten Sie darauf, dass mindestens eine Zelle innerhalb der Daten markiert ist und wie zuvor über Power Query Aus bzw. Von Tabelle anklicken und damit eine weitere Abfrage erstellen. Ein kurzer Blick nach rechts zeigt Ihnen, dass der Name der (künftigen) Tabelle schon ein „sprechender“ ist, der kann also bleiben. Jetzt aber nicht schließen sondern innerhalb des Editors in der Gruppe Combine den Punkt Abfragen zusammenführen anklicken. Es öffnet sich dieses Fenster:

Der erste Schritt beim Zusammenführen von Abfragen

Der erste Schritt beim Zusammenführen von Abfragen

Hinweis: Es ist sehr wichtig, dass die Abfrage tbl_Bestellung im oberen Teil-Fenster steht. Von oben nach unten gesehen (was die Fenster betrifft) ist es eine n:1 Beziehung, die erstellt werden soll. OK, das war für Datenbank-Kundige.  😎 Anmerkung für Gurus: Ja, ich weiß …

Merken Sie sich bitte: In den oberen Fensterteil gehört die Tabelle, wo das verknüpfte Feld (hier: die Produktnummer) mehrfach vorkommen kann oder auch vorkommt. Im Vergleich zum SVERWEIS wäre es das erste Argument der Funktion. Mehrere (n) Kunden können ein (1) Produkt kaufen.

Im freien Feld unterhalb der angezeigten Tabelle mit den Aufträgen klicken Sie auf den Pfeil DropDownPfeil und wählen die Tabelle, wo die Produktnummern und die dazu gehörigen Daten stehen. Diese Nummern sind einmalig, also ohne Dubletten, auch wenn es nicht zwingend notwendig ist. Und sie sind auch nicht sortiert. – Die Auswahl fällt nicht schwer, es ist natürlich die Abfrage tbl_Produkte.

Jetzt richten Sie die eigentliche Verknüpfung ein. Ich versuche einmal, eine Eselsbrücke zu bauen. Beim SVERWEIS heißt es ja dem Sinn nach: WAS soll gesucht werden? – WO soll nachgesehen werden (Bereich)? – Welche SPALTE der Fundzeile soll zurückgegeben werden? Das vierte Argument betrachte ich hier nicht.

Dieser Weg mit Power Query ist in etwa vergleichbar. WAS soll gesucht werden? Klar, die Produktnummer. Die ist ja der einzige Hinweis auf den zu suchenden Artikel. WO soll gesucht werden? Logisch, in tbl_Produkte. – Jetzt ist aber ein gravierender Unterschied gegeben. Sie müssen nämlich angeben, in welcher Spalte der zu suchende Begriff steht. Es ist nicht zwingend die erste Spalte.

Um es abzukürzen: Klicken Sie in tbl_Bestellung irgendwo in die Spalte Produktnummer, und in tbl_Produkte ist es „zufällig“ auch Produktnummer. Gleiche Spalten-Namen erleichtern das Denken, sind aber nicht zwingend notwendig. Wenn Sie beide Spalten markiert haben, sieht das so aus:

Die beiden Spalten für den Link sind markiert

Die beiden Spalten für den Link sind markiert

Ein Klick auf OK und dieses Fenster schließt sich. Der Abfrage-Editor ist aber immer noch geöffnet. Und dort gibt es eine neue Spalte mit dem wirklich „einfallsreichen“ Namen NewColumn. Und der Inhalt jeder einzelnen Zeile ist auch nicht gerade vielsagend. Aber rechts in der Überschrift ist solch ein Symbol: ErweiternSymbol. Klicken Sie einmal darauf und es öffnet sich dieser Dialog:

Bestimmen Sie, welche Felder ausgegeben werden sollen

Bestimmen Sie, welche Felder ausgegeben werden sollen

Es sollen der Produkt-Name und der Preis angezeigt werden. Entfernen Sie die anderen Häkchen, einschließlich der Auswahl ganz unten mit den Spaltennamen. Dann werden nämlich nur die eigentlichen Spaltennamen als Überschrift geschrieben. OK und das Ergebnis sieht schon sehr gut aus. Prinzipiell ist das Ziel erreicht. Sie können nun noch in der Gruppe Transformieren den Datentyp in der Spalte Datum auf den Datentyp Datum (statt Datum/Uhrzeit) ändern und bei Preis auf Währung. Zum guten Schluss Schließen und laden. Sie sehen, dass der Verweis mit einem positiven als auch negativen Index klappt.

Was gibt es noch zu tun? Na ja, sehen Sie sich doch einmal im Blatt Produkte die Zelle A4 an. Vielleicht ist es Ihnen ja schon aufgefallen, dass da ein „s“ bei der Tatatur fehlt. Nutzen Sie die Gelegenheit das zu verbessern. Und Sie erkennen dann einen weiteren Gegensatz zum SVERWEIS: Es erfolgt keine automatische Anpassung, keine automatische Änderung der Daten in der erstellten Rechnung. Dazu bedarf es einer kleinen Aktion: Wählen Sie den Menüpunkt Tabellentools oder (vorzugsweise) Abfragetools und klicken Sie anschließend auf die Schaltfläche Aktualisieren. Alternativ geht das auch per Rechtsklick in die daten und im Kontextmenü Aktualisieren wählen. Das mag Ihnen im ersten Moment als kleiner Nachteil erscheinen, aber Power Query wird typischerweise so eingesetzt, dass immer frische, neue Daten automatisch eingelesen und wie bei einem VBA-Programm in immer gleicher Weise ausgewertet werden. Und der Anwender kann bestimmen, wann die aktualisierten Daten übernommen werden.

Last but not least können Sie nun auch die Berechnungen beispielsweise für den Gesamtpreis in der erstellten Tabelle vornehmen. Einfach eine Spalte anfügen, Überschrift in G1 schreiben und in G2 die Berechnung durchführen.

▲ nach oben …

Reference: #0522

Dieser Beitrag wurde unter Musterlösungen, Ohne Makro/VBA, Power Query, Suchen und finden, Tabelle und Zelle abgelegt und mit , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.