$ PQ: Datenliste als Filter-Kriterium verwenden

Xtract: Mit­tel- und Großstädte Deutsch­lands aus einem Web-Import (Wikipedia) in Pow­er Query so fil­tern, dass eine Excel-Tabelle die dynamis­chen Fil­ter-Kri­te­rien für die Kom­plett-Auf­stel­lung darstellt.

Wis­sens­stand: Lev­el 2 ⇒ Solides Basiswis­sen in Excel, etwas Erfahrung in PQ

Die Einträge einer Excel-Liste verwenden, um eine Power Query-Abfrage zu filtern

Für Sie als geübten Pow­er Query-Anwen­der ist es gewiss eine leichte Übung, per Mausklick mehrere Fil­ter-Kri­te­rien ein­er Spalte in ein­er Abfrage festzule­gen und die Query dann zu aktu­al­isieren. Reine Excel-Anwen­der, die mit PQ prak­tisch keine Erfahrung haben, wer­den sich gewiss nicht leicht damit tun, im Pow­er Query-Edi­tor zu arbeit­en. Da bietet sich die Möglichkeit, in Excel eine Intel­li­gente Tabelle anzule­gen und dort all jene Fil­ter-Begriffe ein­tra­gen zu lassen, welche auf die importierten Dat­en ange­ord­net wer­den sollen.

Auf der Suche nach ein­er mit­telmäßig umfan­gre­ichen Daten­quelle habe ich mich für eine Liste/Tabelle der Deutschen Groß- und Mit­tel­städte entsch­ieden, welche bei Wikipedia im Inter­net veröf­fentlicht wor­den ist. Und bei der Gele­gen­heit habe ich die Dat­en (natür­lich) gle­ich mit­tels Pow­er Query aus dem Web importiert. – Öff­nen sie erst ein­mal im Brows­er ihrer Wahl den Link zur Wikipedia-Seite. Wenn Sie etwas nach unten scrollen wer­den sie diese Tabelle zu Gesicht bekom­men:

Diese HTML-Tabelle aus Wikipedia wer­den Sie für die Auswer­tung nutzen

Sie erken­nen, dass die Städte nach ihrer Ein­wohn­erzahl absteigend geord­net sind. Und da Wikipedia aus­ge­sprochen anwen­der­fre­undlich ganz nor­male HTML-Tabellen ver­wen­det, lassen sich diese auch direkt in Pow­er Query importieren. Dazu markieren Sie die kom­plette Adress-Zeile in Ihrem Brows­er (In der obi­gen Abbil­dung bere­its geschehen) und kopieren Sie den Link in die Zwis­chen­ablage. Spätestens jet­zt ist es an der Zeit, eine neue, leere Excel-Arbeitsmappe zu erstellen oder eine solche zu öff­nen. Wech­seln Sie hier zum Menü Dat­en und Klick­en im Menüband (Gruppe Dat­en abrufen und trans­formieren) auf das Sym­bol Aus dem Web. Im Dia­log-Fen­ster fügen Sie in das Feld URL beispiel­sweise per StrgV den Inhalt der Zwis­chen­ablage ein. Im Dia­log-Fen­ster erken­nen Sie einen Ein­trag mit dem Pfad zur Web­site sowie drei Ein­träge mit dem Sym­bol für eine Tabelle. Wenn Sie sich bei diesen drei Zeilen durchk­lick­en wird Ihnen im recht­en Teil des Fen­sters jew­eils eine Vorschau angezeigt. Bei der unter­sten Auswahl-Möglichkeit zeigt sich ihnen dieses Bild:

Auswahl der gewün­scht­en HTML-Tabelle (mit Vorschau)

… und wenn Sie hier im Vorschau-Bere­ich etwas nach rechts scrollen wer­den Sie fest­stellen, dass dieses genau die weit­er oben gezeigte umfan­gre­iche Tabelle ist. Klick­en Sie auf die Schalt­fläche Laden und Pow­er Query wird ein neues Arbeits­blatt Tabelle2 anle­gen und dort die importierten Dat­en hinein­schreiben. Im recht­en Seit­en­fen­ster wird der Name der Abfrage angezeigt mit dem Hin­weis dass 702 Zeilen geladen wor­den sind. Ach ja, und „73 Fehler”.

An der Farbe des Fehler­hin­weis­es erken­nen Sie, dass es sich um einen Link han­delt. Und natür­lich ist es wichtig zu erken­nen, wo und nach Möglichkeit auch warum ein Fehler ent­standen ist. Darum im recht­en Seit­en­fen­ster erst ein­mal ein Klick auf den Link und Pow­er Query wird eine neue Abfrage erstellen, wo alle 73 Zeilen mit einem Fehler (oder mehreren Fehlern) aufgezeigt wer­den. Eine generelle Analyse ist gewiss nicht nur hil­fre­ich, son­dern ein­fach erforder­lich. Und natür­lich sind die Fehler zu beseit­i­gen, aber es stellt sich die Frage, ob das erforder­lich ist…

▲ nach oben …

Um eine gute Entschei­dung tre­f­fen zu kön­nen, müssen Sie natür­lich wis­sen, was wonach gefiltert wer­den soll. Ich habe (für mich aber auch für Sie) fest­gelegt, dass in der Kom­plett-Tabelle alle Ein­träge (Städte) jen­er Bun­deslän­der gefiltert wer­den, die in ein­er getren­nten, durch den User (sprich durch Sie) angelegten Intel­li­gen­ten Tabelle aufge­führt sind (siehe auch Abbil­dung weit­er unten). Und auch gle­ich an dieser Stelle meine Auswahl: Da ich ein „Nordlicht” bin, werde ich auch die fünf nördlichen Bun­deslän­der Schleswig-Hol­stein, Ham­burg, Bre­men, Nieder­sach­sen und Meck­len­burg-Vor­pom­mern als Fil­ter ver­wen­den und dann anzeigen.

Da Sie jet­zt prinzip­iell wis­sen, wonach gefiltert wer­den soll müssen sie nur noch fes­tle­gen, welche Spal­ten im Fil­trat aus­gegeben wer­den sollen. Name (Stadt) und Bun­des­land ist klar, der Rang kann mit aus­gegeben wer­den und bei der Ein­wohn­erzahl ist gewiss nur die Spalte 2019 rel­e­vant, wenn über­haupt… Über­prüfen Sie nun in der automa­tisch neu erstell­ten Abfrage mit den fehler­haften Daten­sätzen, ob in den gezeigten Spal­ten in ein­er beliebi­gen Zeile ein Fehler auf­taucht oder nicht. Sie kön­nen nun natür­lich „zu Fuß” jede der 73 Zeilen in jed­er der rel­e­van­ten Spal­ten auf den Fehler­w­ert Error über­prüfen. Ich finde: Der Hit ist das nicht. Und da ich von Natur aus faul bin, gehe ich hier einen anderen Weg. Das sollte Sie aber nicht daran hin­dern, die Fehlerur­sache zu find­en. (Zahlen und Texte in ein­er Spalte ist nie so opti­mal…)

Erst ein­mal lösche ich die zweite Abfrage Fehler in Groß- und Mit­tel­städten …, sie ist mir zu unüber­sichtlich und es kön­nten bei ein­er anderen Daten­quelle ja auch deut­lich mehr Zeilen sein. Und da mir der Name der Abfrage nach meinem Geschmack entsch­ieden zu lang ist, benenne ich die Query gle­ich um zu Raw­Da­ta. Das lässt sich doch deut­lich leichter schreiben. 😉 Nun markiere ich in genau der gewün­scht­en Rei­hen­folge per Strg jene Spal­ten, die erhal­ten bleiben sollen: Rang, Name, 2019 und Bun­des­land. Recht­sklick in ein­er der markierten Über­schriften und Andere Spal­ten ent­fer­nen. Und wenn ich nun auf Schließen & laden klicke ist ein­er­seits die Tabelle im Arbeits­blatt Tabelle2 deut­lich schmaler und im recht­en Seit­en­fen­ster ist auch der Hin­weis auf vorhan­dene Fehler ver­schwun­den. Damit ent­fällt die müh­selige Suche.

▲ nach oben …

Nutzen Sie die Gele­gen­heit, zum Arbeits­blatt Tabelle1 zu wech­seln und erstellen Sie dort beispiel­sweise begin­nend in A1 eine for­matierte Liste mit den aus der Gesamtliste zu fil­tern­den Bun­deslän­dern:

Zu fil­ternde Bun­deslän­der

Ein klein­er Hin­weis: Ich wohne seit über 30 Jahren in Schleswig-Hol­stein, der Tippfehler ist also kein Zufall son­dern gewollt. 🙂 Übernehmen Sie also bitte genau diese Schreib­weise wie in der Abbil­dung. Importieren Sie nun diese Tabelle in den Pow­er Query-Edi­tor. Ändern Sie vorzugsweise den Namen der Tabelle auch gle­ich auf Bun­des­land-Fil­ter. Sie kön­nten natür­lich auch nur den Namen Bun­des­land ver­wen­den, aber ich finde es nicht so schick, wenn ein Spal­tenname iden­tisch ist mit dem Namen der Abfrage.

Wech­seln Sie nun wieder zur Abfrage Raw­Da­ta, um erst ein­mal per Hand den Fil­ter­vor­gang durchzuführen. Immer unter dem Aspekt, dass später automa­tisch und auss­chließlich die Dat­en aus der Tabelle Bun­des­land-Fil­ter genutzt wer­den sollen. Fil­tern Sie also per Hand die Spalte Bun­des­land nach Bre­men, Ham­burg, Meck­len­burg-Vor­pom­mern, Nieder­sach­sen und Schleswig-Hol­stein. Das Ergeb­nis ist nach Rang sortiert und umfasst laut Sta­tuszeile 4 Spal­ten und 126 Zeilen (Städte). Da dieses ja nur ein Test war merk­te sich vorzugsweise die Anzahl der Zeilen und löschen im recht­en Seit­en­fen­ster den let­zten Schritt Gefiltert Zeilen.¿

▲ nach oben …

Nun kommt der entschei­dende Schritt. Die Werte der Abfrage sollen ja als Fil­ter-Kri­teri­um ver­wen­det wer­den. Und Sie wer­den gle­ich erken­nen, dass es auch ganz gut ist, dass der jet­zt bestrit­tene Weg nur ein­ma­lig von Ihnen gegan­gen wer­den muss und nicht bei jed­er Änderung der Dat­en im Arbeits­blatt Tabelle1. Aber sehen Sie selb­st …

Die aktuelle Abfrage ist Raw­Da­ta und umfasst alle 702 Zeilen. Erweit­ern Sie die Über­schrift der Spalte Bun­des­land und wählen Sie ein beliebiges Land als Fil­ter; beispiel­sweise Baden-Würt­tem­berg, weil es das erste in der Liste ist. Oder sie nehmen Bre­men, weil das Ergeb­nis dort so schön über­sichtlich ist. Wegen dieser besseren Über­sicht und dadurch bed­ingten klar­eren Darstel­lung habe ich mich auch für Bre­men entsch­ieden. Das Ergeb­nis stellt sich so dar:

Das Ergeb­nis des Fil­ter-Vor­gangs für das Bun­des­land Bre­men

Wichtig ist hier nicht die Tabelle mit den zwei Zeilen, son­dern die Eingabezeile mit der Funk­tion fürs Fil­tern. Und hier ist der inter­es­sante Teil der nach dem Kom­ma, also
each ([Bundesland] = "Bremen")). Aus­ge­sprochen ein­fach die „Über­set­zung” dieses Teils: Selek­tiere (wäh­le, belasse) jede Zeile der Abfrage, wo in der Spalte [Bun­des­land] der Text „Bre­men” ste­ht. Ändern Sie nun den Text nach dem Schlüs­sel­wort each „vom Prinzip her gese­hen” so ab: … each List.Contains(Name der Liste, [Name der Spalte])) was dann diese (kom­plette) Zeile ergeben würde: …

Ein wichtiger Hin­weis
Der Link auf den Folge-Beitrag begin­nt mit „$$”. Das bedeutet für alle der­ar­tig aus­geze­ich­neten Beiträge, dass diese kostenpflichtig sind (eine geringe Spende).
Näheres dazu in der ange­sproch­enen Mail. Auch Wis­sen hat einen Wert!

 

Wie eben schon dargelegt habe ich auch eine aus­führliche Beschrei­bung meines Lösungsweges in bekan­nter, aus­führlich­er Form erstellt. Eine E‑Mail an mich mit dem Stichwort/Betreff  $$ PQ: Daten­Liste als Fil­ter-Kri­teri­um ver­wen­den und Sie bekom­men von mir den entsprechen­den Link sowie das erforder­liche Pass­wort zum öff­nen des Beitrages, sofern Sie mir eine eine Spende von 5,00€ (Über­weisung, Ama­zon-Gutschein oder Pay­Pal Fre­und­schaft) haben zukom­men lassen.

▲ nach oben …

Dieser Beitrag wurde unter Allgemein, Verschiedenes, Filtern & Sortieren, Power Query, PQ-Formeln (Sprache M), Spende/Donation abgelegt und mit , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.