ꜛ PQ – Filtern (Datum / kalendarische Daten)

Xtract: In/per Pow­er Query eine Abfrage nach Datum (kalen­darische Dat­en) in ver­schiede­nen Zeit­bere­ichen fil­tern.

  Wis­sens­stand: Lev­el 1 ⇒ Pow­er Query für Ein­steiger – Keine/kaum Vorken­nt­nisse in PQ

In Pow­er Que­ry ist das fil­tern von Dat­en al­ler Art ähn­lich prob­lem­los mög­lich wie in Plain Ex­cel, so­fern Sie dort eine „Intel­li­gente” Lis­te ver­wen­den. Der wirk­lich gro­ße Unter­schied beste­ht dar­in, dass PQ eine neue Ta­bel­le er­zeugt, wel­che auss­chließlich die ge­fil­ter­ten Dat­en ent­hält, also mehr oder we­ni­ger deut­lich klein­er ist als die Ursprungs­dat­en. Und das kann sich dur­chaus pos­i­tiv bemerk­bar ma­chen, wenn mit die­sen Dat­en in Ex­cel weit­ere Berech­nun­gen durchge­führt wer­den sol­len. Schlie­ß­lich wer­den bei in Ex­cel ge­fil­ter­ten Ta­bel­len die uner­wün­scht­en Zei­len nur aus­ge­blendet aber den­noch in vie­len Fäl­len bei der Berech­nung in irgen­dein­er Form mit ein­be­zo­gen.

Grund­sät­zlich eig­net sich eine Ta­bel­le mit Geburt­sta­gen gut für eine Auswer­tung kalen­darisch­er Dat­en. Dar­um la­den Sie die­se Da­tei von un­se­rem Serv­er her­un­ter. Dort sind 1.000 Na­men mit ei­nem Geburts­da­tum ver­merkt. Für die ers­ten Übun­gen soll­te das rei­chen. 😎 

Ein­zel­nes Da­tum

Das Ziel die­ser Übung wird sein, ein de­fi­nier­tes ein­zel­nes Da­tum zu fil­tern, zu ex­tra­hie­ren. Das kann ein exak­tes Da­tum sein (beispiel­sweise ge­nau heu­te) oder auch der heu­ti­ge Tag ohne Berück­sich­ti­gung des Jah­res, wie es typ­is­cher­weise bei Geburt­stagslis­ten hil­fre­ich wäre.

Da in der gelade­nen Ta­bel­le ga­ran­tiert der heu­ti­ge Tag (HEU­TE()) nicht enthal­ten ist, kön­nen Sie ger­ne Hugo Hur­tig oder Lies­chen Mül­ler als 1001’ten Daten­satz mit der For­mel HEU­TE() in der Spal­te Gebutrt­stag anfü­gen. Sie wer­den die­ses Da­tum zwar nicht im ers­ten Durch­lauf nut­zen, aber im weit­eren Ver­lauf kom­me ich dar­auf zu­rück; in Pow­er Que­ry gibt es näm­lich kei­ne di­rekt anwend­bare Funk­tion mit dem Na­men Date.​Today (oder ähn­lich) aber es ist natür­lich den­noch mach­bar …

Wie auch im­mer, im­por­tie­ren Sie erst ein­mal die Ta­bel­le mit den 1.000 oder 1.001 Na­men und Geburt­sta­gen in den Pow­er Que­ry-Edi­tor. Su­chen Sie sich ei­nen beliebi­gen Geburt­stag aus der Lis­te her­aus und mer­ken Sie sich das kom­plette Da­tum, also mit der Jah­res­zahl. Ich su­che mir ein­fach ein­mal den Horst Schrei­ber her­aus, der am 22.01.1970 ge­bo­ren wur­de.

Um nun ge­nau die­sen Tag aus der Lis­te zu fil­tern, gibt es (natür­lich) meh­re­re Möglichkeit­en. In je­dem Fall wer­den Sie erst ein­mal den Daten­typ auf (nur) Da­tum än­dern. An­schlie­ßend die Über­schrift Geburt­stag durch ei­nen Klick auf das ent­spre­chen­de Sym­bol erweit­ern. Bei nur weni­gen Daten­sätzen ist es dur­chaus denk­bar, dass Sie erst ganz oben bei (Al­les aus­wäh­len) das Häk­chen ent­fer­nen und dann das gewün­schte Da­tum anklick­en. Aber hier sind die kalen­darischen Dat­en ja chro­nol­o­gisch sor­tiert und Sie müss­ten reich­lich blät­tern, um die gewün­schte Zei­le zu mar­kie­ren.

In die­sem Fall bie­tet sich an, nach dem Erweit­ern der Über­schrift den Punkt Datums­fil­ter anzuk­lick­en und an­schlie­ßend Ist gle­ich… aus­zu­wäh­len. Im Dia­log tra­gen Sie dann das Da­tum 22.01.1970 in das Text­feld ein. Ach ja, wenn Sie ge­nau so schreib­faul sind wie ich, dann reicht auch die Kurz­form 22.1.70 als Datum­sangabe. PQ ver­ste­ht Sie schon rich­tig. 😎 Und nach ei­nem OK wird ge­nau die­ser Daten­satz ge­fil­tert und die Que­ry beste­ht dann auch nur aus die­ser ei­nen Zei­le.

So weit, so gut. Nun wis­sen Sie, dass ge­nau 1 Per­son na­mens Horst Schrei­ber am 22. Jan­u­ar 1970 Geburt­stag hat. Aber das kann ja kein Selb­stzweck sein, denn nor­maler­weise sol­len der­art ge­fil­ter­te Wer­te ja weit­er ver­ar­beit­et wer­den. Dar­um mein Vor­schlag: Du­pli­zie­ren Sie die­se Ab­fra­ge¿ und ge­ben dem Dup­likat beispiel­sweise den Na­men 1970-01-22 (22.01.70 geht nicht, weil Abfra­ge­na­men kei­ne Punk­te enthal­ten dür­fen). Wech­seln Sie im lin­ken Seit­en­fen­ster zur ur­sprüng­li­chen Ab­fra­ge Ta­bel­le1 und lö­schen Sie im recht­en Seit­en­fen­ster den let­zten Schritt Ge­fil­ter­te Zei­len.¿ Da­mit sind dann auch wie­der alle Dat­en in der Ab­fra­ge enthal­ten. 😉

Nicht nur um die­sen Stand zu sich­ern ge­hen Sie über Da­tei | Schlie­ßen & la­den in… und wäh­len Sie dann Nur Ver­bin­dung er­stel­len. Da­mit wird die Que­ry ge­schlos­sen und Sie erken­nen, dass das ganz „nor­male” Excel-Arbeits­blatt die ein­zig ak­ti­ve Ober­fläche ist. F5 (ent­spricht Ge­he­Zu) und tra­gen Sie bei Ver­weis die Zel­ladresse C290 ein. Sie erken­nen, dass dort das Da­tum 06.11.1990 in der aktiv­en Zel­le ste­ht.

Öff­nen Sie die zu­erst er­stell­te Pow­er Que­ry-Ab­fra­ge Ab­fra­ge1 durch beispiel­sweise Dop­pelk­lick auf den Ein­trag im recht­en Seit­en­fen­ster.¿ Wenn Sie unsich­er sind, ob auch hier das eben ge­such­te Da­tum exis­tiert, blät­tern Sie ger­ne zur Zei­le 289. Der Übung hal­ber du­pli­zie­ren Sie noch ein­mal Ta­bel­le1, also die unge­filterte Ab­fra­ge. Ge­ben Sie ver­suchshal­ber in das Text­feld mit dem vorgegebe­nen Text Su­chen ein­mal das Da­tum in die­ser Form ein: 6. Nov. 1990. Sie se­hen, es wird nichts gefun­den. Gle­ich­es gilt, wenn Sie den Mo­nat kom­plett als Lang­text schrei­ben. Aber die Schreib­weise 06.11.1990 wird den gewün­scht­en Er­folg zeit­i­gen, auch in der kürz­eren Schreib­weise des Da­tums:

3 Ergeb­nisse an die­sem Tag

Als let­zten Tipp möch­te ich Ih­nen ge­ben, dass Sie für die Aus­wahl des Da­tums natür­lich auch das klei­ne Kalen­der-Sym­bol rechts ne­ben dem Text­feld nut­zen kön­nen. Das Ergeb­nis wird gle­icher­maßen kor­rekt sein. – Mei­ne Emp­feh­lung: Se­hen Sie sich ger­ne ein­mal die weit­eren Möglichkeit­en des Datums­fil­ters an. Am Bei­spiel der Aus­wahl Mo­nat:

Di­ver­se Möglichkeit­en des Fil­terns (hier: Mo­nat) sind ge­ge­ben…

Am An­fang die­ses Bei­tra­ges habe ich Ih­nen ange­boten, ei­nen weit­eren Daten­satz in die Roh-Dat­en ein- bzw. dort anzufü­gen; die­ser soll­te dann als Da­tum die For­mel =HEU­TE() enthal­ten, da­mit in je­dem Fall in der Ab­fra­ge das heu­ti­ge Da­tum ge­fil­tert wer­den kann. Nut­zen Sie dazu die Aus­wahl Tag beim Datums­fil­ter und an­schlie­ßend Heu­te.

Da­tum-Be­reich (von – bis)

Prinzip­iell ist das Vorge­hen iden­tisch, wenn Sie nicht ei­nen einzel­nen Tag son­dern ei­nen Datum-Bere­ich fil­tern wol­len. Ei­nen klei­nen, ers­ten Ein­druck ha­ben Sie ja bere­its di­rekt hier­über bekom­men, als Sie die Aus­wahl Mo­nat getrof­fen hat­ten. Die an­de­ren Unter­punk­te sind ge­wiss ge­nau so hil­fre­ich. Und in der „nor­malen” Datum­fil­ter-Funk­tion kön­nen Sie auch di­rekt ei­nen Datum­bere­ich Zwis­chen… wäh­len, wo Ih­nen so gut wie jede Mög­lich­keit of­fen ste­ht:

Kalen­darische Dat­en ei­nes defoniert­ten Zeit­bere­ichs wäh­len

Und last but not least: In die­sem Bei­trag zei­ge ich Ih­nen auf, wie Sie an­hand der iden­tis­chen Beispiel-Geburt­stags-Lis­te her­suafind­en kön­nen, wer heu­te Geburt­stag hat (und auch noch, wie alt die- oder der­jenige gewor­den ist. Allerd­ings ist das nicht unbe­d­ingt für ab­so­lu­te Ein­steiger in Pow­er Que­ry ge­g­eig­net, et­was Vorken­nt­nisse kön­nten ge­wiss heil­fre­ich sein. 😉 Di­ver­se weit­ere Bei­trä­ge zum The­ma kön­nen Sie nach­blät­tern, wenn Sie im Blog das Stich­wort Da­tum oder Geburt­stag beim Su­chen-Feld ver­wen­den.

▲ nach oben …

Hat Ih­nen der Bei­trag ge­fal­len?
Er­leich­tert die­ser Bei­trag Ihre Ar­beit?

Dann wür­de ich mich über ei­nen Bei­trag Ihrer­seits z.B. 2,00  freu­en …

Dieser Beitrag wurde unter a) Keine Vorkenntnisse, b) Kaum Vorkenntnisse, Datentyp anpassen, Datum & Zeit, Datum und Zeit, Filtern & Sortieren, Power Query, PQ für Einsteiger abgelegt und mit , , , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.