Geburtstag innerhalb der nächsten x Tage + Verteiler

Geburtstagsliste, innerhalb der nächsten x Tage, nach Niederlassungen aufgeteilt

In der Zen­trale eines größeren Betriebes mit 4 Stan­dorten soll wöchentlich ein­er Liste erstellt wer­den, wo getren­nt für jede Nieder­las­sung aufge­führt wird, welche Mitar­bei­t­erin bzw. welch­er Mitar­beit­er heute bzw. in den kom­menden 14 Tagen Geburt­stag hat. Nutzen Sie die einzige Tabelle dieser Datei, um die 4 getren­nten Listen/Tabelle per Pow­er Query zu erstellen und als PDF zu spe­ich­ern.

Zugegeben, für eine ein­ma­lige Aktion wäre der Aufwand gewiss etwas hoch. Da würde ich wahrschein­lich sel­ber auch nur mit Formeln und Fil­tern in Plain Excel arbeit­en. Aber da  wöchentlich eine solche Liste für jede Nieder­las­sung erstellt wer­den soll und naturgemäß auch die Liste der Mitar­beit­er andauern­den Verän­derun­gen unter­liegt, kann Pow­er Query dur­chaus eine echte Hil­fe sein. 💡 

Aus­nahm­sweise wer­den Sie die Dat­en mit den Namen der Mitar­beit­er nicht zu Beginn importieren und anschließend als Tabelle for­matieren. Sie greifen von einem noch leeren Work­book auf diese externe Datei zu. Dazu erstellen Sie in Excel eine neue, leere Arbeitsmappe. Über das Excel 2016-Menü Dat­en | Neue Abfrage | Aus Datei | Aus Arbeitsmappe greifen sie auf die Datei Geburtstag_innerhalb_x_Tagen.xlsx zu, indem Sie das File im entsprechen­den Ord­ner auswählen und dann auf Importieren Klick­en. Da nur ein Arbeits­blatt existiert, Klick­en Sie auf den Ein­trag Tabelle1. Rechts wird sofort ein Pre­view einge­blendet und da es die richti­gen Dat­en sind ein Klick auf Bear­beit­en. Und Sie wer­den auch rasch erken­nen, dass das Datum im ANSI-For­mat ohne ihr Zutun in das DE-For­mat umge­wan­delt wurde (sofern ihr Rech­n­er auf Gebi­etss­chema Deutsch­land eingestellt ist).

Mir ist klar, dass Sie jet­zt ver­schiedene Einzelschritte unternehmen, die nicht in jedem Fall unbe­d­ingt erforder­lich sind. Allerd­ings haben Sie so bess­er die Möglichkeit, die Schritte zum Ziel auch nachvol­lziehen zu kön­nen. Es wer­den inner­halb des Abfrage-Edi­tors Hil­f­ss­pal­ten gener­iert, die direkt vor der Erstel­lung der Lis­ten wieder ent­fer­nt wer­den. Gehen Sie über das Menü Spalte hinzufü­gen und dort ein Klick auf Benutzerdefinierte Spalte. Ver­wen­den Sie einen „sprechen­den” Spal­tenna­men, beispiel­sweise Geburt­stag aktuelles Jahr. Bei Benutzerdefinierte Spal­tenformel geben Sie fol­gen­des ein:
=#date(Date.Year(DateTime.LocalNow()),
Date.Month([Geburtstag]), Date.Day([Geburtstag]))

wobei sie darauf acht­en wer­den, dass die Groß- Klein­schrei­bung exakt so ist, wie hier dargestellt. Ein- oder mehrzeilig ist nicht rel­e­vant. Das gilt übri­gens für alle Formeln und Funk­tio­nen, die sie in der Sprache M ver­wen­den. – Das Ergeb­nis ist erwartungs­gemäß der Geburt­stag jedes Mitar­beit­ers im aktuellen Jahr. Darauf basierend wird nun fest­gestellt, ob dieses Datum heute ist bzw. inner­halb der näch­sten 14 Tage liegt.

Um die restlichen Formeln für die Berech­nung so trans­par­ent wie möglich zu hal­ten, gener­iere ich ein­fach eine Spalte mit dem aktuellen, dem heuti­gen Datum. Dazu wiederum Benutzerdefinierte Spalte und geben Sie als Über­schrift Heute ein danach ver­wen­den Sie diese Funk­tion:
=DateTime.LocalNow()
und weisen Sie anschließend diese Spalte den Daten­typ (nur) Datum zu.

In einem weit­eren Zwis­chen­schritt geht es darum festzustellen, ob der Geburt­stag des aktuellen Jahres inner­halb des definierten Zeitraums liegt oder nicht. Mit fol­gen­der Formel inner­halb ein­er Benutzerdefinierten Spalte erre­ichen Sie, dass ein TRUE oder FALSE berech­net bzw. aus­gegeben wird:
[Geburtstag aktuelles Jahr] >= [Heute]
and [Geburtstag aktuelles Jahr] <= Date.AddDays([Heute], 14)

Sie kön­nen die Formel in 1 oder ‑wie hier gezeigt- in mehrere Zeilen schreiben. Die Zeilen wer­den nicht verknüpft. – Damit ist der größte Schritt geschafft. Fil­tern Sie die Spalte Geburt­stagsliste nach TRUE und es bleiben in der Abfrage nur noch jene Mitar­beit­er sicht­bar, die heute ein­schließlich der kom­menden 14 Tage Geburt­stag haben. – Die 3 Hil­f­ss­pal­ten haben ihre Schuldigkeit getan, Geburt­stag aktuelles Jahr, Heute, Geburt­stagsliste kön­nen also gelöscht wer­den.

Nun soll ja für jede Nieder­las­sung eine Liste mit den aktuellen „Geburt­stagskindern” erstellt wer­den. Dazu duplizieren sie diese Abfrage genau 4 mal. Wenn im linken Seit­en­bere­ich nur der schmale Streifen mit dem Text Abfra­gen und dem ein Größer-Sym­bol darüber sicht­bar ist, dann klicke ich auf den Text oder >, um in einem Seit­en­fen­ster die Auflis­tung der Abfra­gen zu sehen. Derzeit ist das ja nur Tabelle1. Ein Recht­sklick auf den Namen der Abfrage und sie wählen nicht Duplizieren son­dern die Auswahl Ver­weis. Dadurch wer­den die Kopi­en dynamisch. Acht­en Sie aber darauf, dass Sie die Kopie jew­eils von Tabelle1 erstellen.

Geben Sie nun jed­er der vier erstell­ten Abfra­gen den Namen ein­er Nieder­las­sung also Berlin, Frank­furt, Ham­burg und München. Und last but not least wer­den Sie jede der zulet­zt erstell­ten Abfra­gen gemäß dem Namen in der Spalte Fil­iale fil­tern. Anschließend ein Klick auf das Sym­bol Schließen & laden und es wer­den durch Pow­er Query 4 neue Tabel­len­blät­ter mit den Listen/Tabellen der jew­eili­gen Abfrage erstellt. Sin­nvoller­weise wer­den Sie die Sheets nun mit den entsprechen­den Städte­na­men benen­nen, das leere Blatt Tabelle1 kön­nen Sie get­rost löschen. – Spätestens jet­zt soll­ten Sie Ihr Werk spe­ich­ern.

Datei | Exportieren | PDF/XPS Doku­ment erstellen und vergeben Sie einen passenden Dateina­men, beispiel­sweise Geburt­stagsliste Berlin. Ein Klick auf die Schalt­fläche Optio­nen… und Sie passen an, was gedruckt wer­den soll und welche Infor­ma­tio­nen in jedem einzel­nen Doku­ment enthal­ten sein sollen. Ein Klick auf Veröf­fentlichen und die PDF-Datei wird am vorgegebe­nen Ort gespe­ichert.

Vielle­icht fra­gen Sie sich, warum ich als Dateina­men nur den Namen der Stadt und nicht zusät­zlich das aktuelle Datum ver­wen­det habe; der Vorteil dieser Vorge­hensweise ist, dass im Nor­mal­fall beim Empfänger der PDF die alte Datei (auf Nach­frage) über­schrieben wird und somit stets nur der aktuelle Stand der Dinge vor­liegt.

… Und jet­zt kommt der Ruf aus den einzel­nen Nieder­las­sun­gen, dass die Lis­ten doch nicht so opti­mal sind wie es wün­schenswert wäre. Die Sortierung jed­er einzel­nen Liste sollte so sein, dass die Geburt­stage in Bezug auf das aktuelle Jahr chro­nol­o­gisch auf­steigend geord­net sind. Die ersten Ein­träge soll­ten also nahe dem aktuellen Datum sein. Natür­lich brauchen Sie sich nicht noch ein­mal die ganze Arbeit zu machen, es reicht eine rel­a­tiv kleine Änderung an der Abfrage Tabelle1. Öff­nen Sie also diese Query beispiel­sweise durch einen Dop­pelk­lick auf den ober­sten Ein­trag im recht­en Seit­en­fen­ster und markieren Sie im Bere­ich Angewen­dete Schritte die Zeile Gefiltert Zeilen. Sortieren Sie nun die Spalte Geburt­stag aktuelles Jahr auf­steigend. Im Dia­log Schritte ein­fü­gen bestäti­gen Sie Ihre Entschei­dung mit einem Klick auf Ein­fü­gen. Ein Klick im linken Seit­en­fen­ster auf die einzel­nen Städte-Abfra­gen wird Ihnen zeigen, dass jet­zt alles so ist wie gewün­scht. 😎 – Und wenn Sie Ihr Ergeb­nis mit meinem ver­gle­ichen wollen, laden Sie sich meine Lösung ein­fach herunter.

▲ nach oben …

Dieser Beitrag wurde unter Allgemein, Verschiedenes, Datum & Zeit, File-Handling, Filtern & Sortieren, Power Query, PQ-Formeln (Sprache M), Vergleichen (Daten, Tabellen, Abfragen) abgelegt und mit , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.