Einschulung dieses oder nächstes Jahr?

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

Alle Jahre wieder stellt sich in Schulsekre­tari­at­en, kom­mu­nalen Ver­wal­tun­gen, etc. die Frage, in welchem Jahr ein Kind eingeschult wer­den soll. Prinzip­iell gilt fol­gende Regel: Wird ein Kind vor dem 1. August 6 Jahre alt, dann soll es (vor­be­haltlich der schulis­chen Reife) in dem Jahr des 6. Geburt­stags eingeschult wer­den, son­st im kom­menden Jahr.

Zur Berech­nung des Ein­schu­lungs­jahrs (der Schulpflicht) mit Excel führen (natür­lich) mehrere Wege nach Rom, also zum Ziel. Den einen oder anderen werde ich Ihnen hier vorstellen. In Plain Excel als auch in Pow­er Query. Um meine Vorschläge nachvol­lziehen zu kön­nen, laden Sie diese Datei mit unter­schiedlich­sten Geburt­stags­dat­en von unserem Serv­er herunter.

▲ nach oben …

Plain Excel

Für diese als auch für die weit­eren Lösun­gen gilt, dass in der Ergeb­nis-Spalte auss­chließlich das Jahr der Ein­schu­lung aus­gegeben wer­den soll. Als Excel-Formel mit ein­er eher klas­sis­chen Aus­prä­gung bietet sich in B2 an:
=JAHR(A2) + 6 + N(MONAT(A2) >7)

JAHR(A2) gibt das Jahr der Geburt zurück. Dieses ist eine ganz nor­male Zahl, wo 6 (Jahre) addiert wer­den. Die Funk­tion N() sorgt dafür, dass ein Wahrheitswert 0 bzw. 1 zurück­gegeben wird, wobei 0 für FALSCH und 1 für WAHR ste­ht. Als Argu­ment inner­halb der Klam­mern ste­ht die Behaup­tung, dass die Monat­szahl des Geburt­stags größer als 7 ist. Ab August ist das Ergeb­nis dieser Funk­tion wahr, also 1 und dieser Wert wird dann entsprechend noch ein­mal zum Jahren der Ein­schu­lung dazu gezählt. Dass Sie die Formel so weit wie in der Nach­barzelle Dat­en ste­hen nach unten ziehen, ver­ste­ht sich …

Eine weit­ere Möglichkeit bietet sich bei Excel-Ver­sio­nen ab (min­destens) 2007. Die Formel ist recht kurz und präg­nant:
=WENNFEHLER(JAHR(EDATUM(A2; 6))+6;"")
wobei Sie sog­ar auch noch die Funk­tion WENNFEHLER() weglassen kön­nten, wenn mit Sicher­heit in Spalte A ein gültiges Datum ste­ht: =JAHR(EDATUM(A2; 6))+6. Durch die Funk­tion EDATUM() wird dem Geburt­stag der Zeitraum von 6 Monat­en addiert und aus diesem neu berech­neten Datum anschließend die Jahreszahl extrahiert.

Haben Sie jet­zt das wirk­lich ganz klas­sis­che WENN()-Kon­strukt ver­misst? Ja natür­lich, damit ist es auch möglich. Aber beim besten Willen, das mag ich Ihnen hier nicht antun …

▲ nach oben …

Mit Power Query

Da die Geburt­stags­dat­en ja bere­its in Form ein­er intel­li­gen­ten Tabelle vor­liegen, ist der Import in den Pow­er Query-Edi­tor prob­lem­los mit nur einem Mausklick möglich. Ich räume ein, dass für vielle­icht 100 oder 200 neue Schüler der Aufwand über Pow­er Query nicht unbe­d­ingt erforder­lich ist. Hier in diesem Beispiel stellen Sie sich ein­fach vor, dass beispiel­sweise in ein­er Behörde große Men­gen von Dat­en ver­ar­beit­et wer­den müssen oder aber Sie wollen das des Ler­nens, des besseren  Umgangs  mit Pow­er Query wegen tun.

Die Geburt­stage sind in PQ importiert und im ersten Schritt wech­seln Sie in das Reg­is­ter Trans­formieren | Datums- & Uhrzeitspalte | Nur Datum; die Darstel­lung der Uhrzeit 0:00 stört doch etwas die Optik. 😎 Wech­seln Sie nun zu Spalte hinzufü­gen | Benutzerdefinierte Spalte und geben Sie im Dia­log bei Neuer Spal­tenname beispiel­sweise Ein­schu­lung Jahr ein. Im großen Kas­ten darunter Benutzerdefinierte Spal­tenformel tra­gen Sie nach dem vorgegebe­nen Gle­ich­heit­sze­ichen diese Formel ein:

= if Date.Month([Geburtsdatum]) <8
then Date.Year([Geburtsdatum]) + 6
else Date.Year([Geburtsdatum]) + 7

Wenn Sie auch nur geringe Ken­nt­nisse in Sachen Pro­gram­mierung haben wer­den Sie sofort erken­nen, dass dieses im Prinzip jene WENN()-Entschei­dung ist, die ich Ihnen im ersten Abschnitt „voren­thal­ten” habe. Sie kön­nen diesen Code nacheinan­der in ein­er einzi­gen logis­chen Zeile schreiben oder hier der Über­sichtlichkeit wegen in drei einzel­nen Zeilen (wie oben gezeigt). Nach dem OK fil­tern Sie das Geburts­da­tum begin­nen mit dem 1. Jan­u­ar des früh­est­möglichen Datums (beispiel­sweise 2011) und das Ergeb­nis ist gegeben.

Ide­al­er­weise geben Sie dieser Abfrage einen sin­nvollen Namen, beispiel­sweise Ein­schu­lung (klas­sisch). Schließen & laden oder Schließen & laden in…, um die Abfrage an eine definierte Posi­tion zu schreiben. Als Alter­na­tive erstellen Sie aus den gle­ichen Excel-Dat­en wie eben eine weit­ere Abfrage. Auch hier wer­den Sie sin­nvoller­weise das Datum aus den Datum/Uhrzeit–Wert extrahieren oder den Daten­typ zu Datum wech­seln. Und Sie wer­den sich denken kön­nen, dass auch hier eine Benutzerdefinierte Spalte zum Zuge kommt. Als Neuer Spal­tenname ver­wen­den Sie Ein­schu­lung (Jahr), die Spal­tenformel sieht so aus:

= Date.Year([Geburtsdatum]) + 6 +
(if Date.Month([Geburtsdatum])>7 then 1 else 0)

Ja, das ist auch ein if-Kon­strukt, eine WENN-Formel. Nur etwas kom­pak­ter, kürz­er. Und die Klam­mern um den if-Teil sind wichtig, son­st kommt es zu einem Fehler. Apro­pos Fehler: Bedenken Sie, dass in der hier ver­wen­de­ten Sprache M die Groß- Klein­schrei­bung der Anweisun­gen wichtig ist! Und auch diese Dat­en wer­den Sie fil­tern; als Start-Geburts­da­tum wer­den Sie heute (im Jahr 2019) den 1.1.2011 wählen. Anschließend wieder Schließen & laden und auch diese Runde ist been­det.

Last but not least habe ich die die bei­den Abfra­gen zusam­menge­fügt. Mit ging es darum, die bei­den Ergeb­nisse zu ver­gle­ichen. Schauen Sie sich gerne die Vorge­hensweise inten­siv an, es sollte nachvol­lziehbar sein. Sie wis­sen, dass im recht­en Seit­en­fen­ster die einzel­nen Schritte automa­tisch doku­men­tiert wer­den und Sie durch einen Klick auf das Zah­n­radsym­bol rechts (sofern vorhan­den) den Dia­log öff­nen.

Das war’s von mein­er Seite. Zugegeben, nur ein klein­er Auss­chnitt der Möglichkeit­en, denn auch In Excel führen viele Wege zum Ziel. Die Lösungs­datei (die Sie vielle­icht eben schon ver­misst haben) find­en Sie hier im Blog.

▲ nach oben …

Dieser Beitrag wurde unter Allgemein, Verschiedenes, Datentyp anpassen, Datum & Zeit, Datum und Zeit, Filtern & Sortieren, Musterlösungen, Ohne Makro/VBA, Power Query, PQ-Formeln (Sprache M), Wege nach Rom abgelegt und mit , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.