Xtract: In/per Power Query eine Abfrage nach Datum (kalendarische Daten) in verschiedenen Zeitbereichen filtern.
Wissensstand: Level 1 ⇒ Power Query für Einsteiger – Keine/kaum Vorkenntnisse in PQ
In Power Query ist das filtern von Daten aller Art ähnlich problemlos möglich wie in Plain Excel, sofern Sie dort eine „Intelligente” Liste verwenden. Der wirklich große Unterschied besteht darin, dass PQ eine neue Tabelle erzeugt, welche ausschließlich die gefilterten Daten enthält, also mehr oder weniger deutlich kleiner ist als die Ursprungsdaten. Und das kann sich durchaus positiv bemerkbar machen, wenn mit diesen Daten in Excel weitere Berechnungen durchgeführt werden sollen. Schließlich werden bei in Excel gefilterten Tabellen die unerwünschten Zeilen nur ausgeblendet aber dennoch in vielen Fällen bei der Berechnung in irgendeiner Form mit einbezogen.
Grundsätzlich eignet sich eine Tabelle mit Geburtstagen gut für eine Auswertung kalendarischer Daten. Darum laden Sie diese Datei von unserem Server herunter. Dort sind 1.000 Namen mit einem Geburtsdatum vermerkt. Für die ersten Übungen sollte das reichen. 😎
Einzelnes Datum
Das Ziel dieser Übung wird sein, ein definiertes einzelnes Datum zu filtern, zu extrahieren. Das kann ein exaktes Datum sein (beispielsweise genau heute) oder auch der heutige Tag ohne Berücksichtigung des Jahres, wie es typischerweise bei Geburtstagslisten hilfreich wäre.
Da in der geladenen Tabelle garantiert der heutige Tag (HEUTE()) nicht enthalten ist, können Sie gerne Hugo Hurtig oder Lieschen Müller als 1001’ten Datensatz mit der Formel HEUTE() in der Spalte Gebutrtstag anfügen. Sie werden dieses Datum zwar nicht im ersten Durchlauf nutzen, aber im weiteren Verlauf komme ich darauf zurück; in Power Query gibt es nämlich keine direkt anwendbare Funktion mit dem Namen Date.Today (oder ähnlich) aber es ist natürlich dennoch machbar …
Wie auch immer, importieren Sie erst einmal die Tabelle mit den 1.000 oder 1.001 Namen und Geburtstagen in den Power Query-Editor. Suchen Sie sich einen beliebigen Geburtstag aus der Liste heraus und merken Sie sich das komplette Datum, also mit der Jahreszahl. Ich suche mir einfach einmal den Horst Schreiber heraus, der am 22.01.1970 geboren wurde.
Um nun genau diesen Tag aus der Liste zu filtern, gibt es (natürlich) mehrere Möglichkeiten. In jedem Fall werden Sie erst einmal den Datentyp auf (nur) Datum ändern. Anschließend die Überschrift Geburtstag durch einen Klick auf das entsprechende Symbol erweitern. Bei nur wenigen Datensätzen ist es durchaus denkbar, dass Sie erst ganz oben bei (Alles auswählen) das Häkchen entfernen und dann das gewünschte Datum anklicken. Aber hier sind die kalendarischen Daten ja chronologisch sortiert und Sie müssten reichlich blättern, um die gewünschte Zeile zu markieren.
In diesem Fall bietet sich an, nach dem Erweitern der Überschrift den Punkt Datumsfilter anzuklicken und anschließend Ist gleich… auszuwählen. Im Dialog tragen Sie dann das Datum 22.01.1970 in das Textfeld ein. Ach ja, wenn Sie genau so schreibfaul sind wie ich, dann reicht auch die Kurzform 22.1.70 als Datumsangabe. PQ versteht Sie schon richtig. 😎 Und nach einem OK wird genau dieser Datensatz gefiltert und die Query besteht dann auch nur aus dieser einen Zeile.
So weit, so gut. Nun wissen Sie, dass genau 1 Person namens Horst Schreiber am 22. Januar 1970 Geburtstag hat. Aber das kann ja kein Selbstzweck sein, denn normalerweise sollen derart gefilterte Werte ja weiter verarbeitet werden. Darum mein Vorschlag: Duplizieren Sie diese Abfrage¿ und geben dem Duplikat beispielsweise den Namen 1970-01-22 (22.01.70 geht nicht, weil Abfragenamen keine Punkte enthalten dürfen). Wechseln Sie im linken Seitenfenster zur ursprünglichen Abfrage Tabelle1 und löschen Sie im rechten Seitenfenster den letzten Schritt Gefilterte Zeilen.¿ Damit sind dann auch wieder alle Daten in der Abfrage enthalten. 😉
Nicht nur um diesen Stand zu sichern gehen Sie über Datei | Schließen & laden in… und wählen Sie dann Nur Verbindung erstellen. Damit wird die Query geschlossen und Sie erkennen, dass das ganz „normale” Excel-Arbeitsblatt die einzig aktive Oberfläche ist. F5 (entspricht GeheZu) und tragen Sie bei Verweis die Zelladresse C290 ein. Sie erkennen, dass dort das Datum 06.11.1990 in der aktiven Zelle steht.
Öffnen Sie die zuerst erstellte Power Query-Abfrage Abfrage1 durch beispielsweise Doppelklick auf den Eintrag im rechten Seitenfenster.¿ Wenn Sie unsicher sind, ob auch hier das eben gesuchte Datum existiert, blättern Sie gerne zur Zeile 289. Der Übung halber duplizieren Sie noch einmal Tabelle1, also die ungefilterte Abfrage. Geben Sie versuchshalber in das Textfeld mit dem vorgegebenen Text Suchen einmal das Datum in dieser Form ein: 6. Nov. 1990. Sie sehen, es wird nichts gefunden. Gleiches gilt, wenn Sie den Monat komplett als Langtext schreiben. Aber die Schreibweise 06.11.1990 wird den gewünschten Erfolg zeitigen, auch in der kürzeren Schreibweise des Datums:
Als letzten Tipp möchte ich Ihnen geben, dass Sie für die Auswahl des Datums natürlich auch das kleine Kalender-Symbol rechts neben dem Textfeld nutzen können. Das Ergebnis wird gleichermaßen korrekt sein. – Meine Empfehlung: Sehen Sie sich gerne einmal die weiteren Möglichkeiten des Datumsfilters an. Am Beispiel der Auswahl Monat:
Am Anfang dieses Beitrages habe ich Ihnen angeboten, einen weiteren Datensatz in die Roh-Daten ein- bzw. dort anzufügen; dieser sollte dann als Datum die Formel =HEUTE() enthalten, damit in jedem Fall in der Abfrage das heutige Datum gefiltert werden kann. Nutzen Sie dazu die Auswahl Tag beim Datumsfilter und anschließend Heute.
Datum-Bereich (von – bis)
Prinzipiell ist das Vorgehen identisch, wenn Sie nicht einen einzelnen Tag sondern einen Datum-Bereich filtern wollen. Einen kleinen, ersten Eindruck haben Sie ja bereits direkt hierüber bekommen, als Sie die Auswahl Monat getroffen hatten. Die anderen Unterpunkte sind gewiss genau so hilfreich. Und in der „normalen” Datumfilter-Funktion können Sie auch direkt einen Datumbereich Zwischen… wählen, wo Ihnen so gut wie jede Möglichkeit offen steht:
Und last but not least: In diesem Beitrag zeige ich Ihnen auf, wie Sie anhand der identischen Beispiel-Geburtstags-Liste hersuafinden können, wer heute Geburtstag hat (und auch noch, wie alt die- oder derjenige geworden ist. Allerdings ist das nicht unbedingt für absolute Einsteiger in Power Query gegeignet, etwas Vorkenntnisse könnten gewiss heilfreich sein. 😉 Diverse weitere Beiträge zum Thema können Sie nachblättern, wenn Sie im Blog das Stichwort Datum oder Geburtstag beim Suchen-Feld verwenden.
Hat Ihnen der Beitrag gefallen?
Erleichtert dieser Beitrag Ihre Arbeit?
Dann würde ich mich über einen Beitrag Ihrerseits z.B. 2,00 € freuen …