Daten in Excel vor dem 1.1.1900: Zeitspannen und Alter berechnen (deutsches Datumsformat)

geschrieben von Michael Crass

Excel speichert kalendarische Daten, also die Zusammensetzung von Tag, Monat und Jahr, in einer Zahl ab. Ob diese Zahl dem Excel-Nutzer als Zahl oder als Datum interpretiert dargestellt wird, hängt von der Formatierung ab. Die Zahl 33 kann als 33 im Zahlenformat interpretiert und dargestellt werden, oder als Datum formatiert, zum Donnerstag, 2. Februar 1900 werden (Abbildung 1).

Abbildung 1: Die Formatierung als Datum macht aus der 33 den 2. Februar 1900.

Dass aus der Zahl 33 der 2.2.1900 wird, liegt daran, dass dieser Tag der 33. jenes Jahres ist – und für Excel der 33. Tag überhaupt. Die ersten 1900 Jahre unserer Zeitrechnung spielen in der Welt von Excel keine Rolle, wie Abbildung 2 zeigt.

Problem: Excel kennt kein Datum vor dem 1.1.1900

kalendarische Daten links als Datum formatiert, rechts als Zahl
Abbildung 2: kalendarische Daten links als Datum formatiert, rechts als Zahl

In Abbildung 2 verrät schon die linksbündige Ausrichtung von 31.12.1899, dass Excel diesen Inhalt in der als Datum formatierten Zelle bloß als Text und nicht als Datum oder Zahl erkennt. Entsprechend funktioniert hier auch nicht die Formatierung als Zahl.

Will man berechnen wie groß die Differenz zwischen zwei Daten ist, und ausgeben, wie viele Jahre zwischen zwei Tagen liegen, nutzt man beispielsweise für Albert Speer in Abbildung 3 diese Formel: =(C7-B7)/365

Die Differenz von Daten ist einfach zu berechnen, wenn das Datum nicht vor 1900 liegt.
Abbildung 3: Die Differenz von Daten ist einfach zu berechnen, wenn das Datum nicht vor 1900 liegt.

Diese Formel wurde in Abbildung 3 analog auch in den Zellen D2 bis D8 genutzt und führt in D2 bis D6 zu Fehlermeldungen, weil Excel keine Datum vor 1900 erkennt und daher mit ihnen auch nicht rechnen kann.

Microsofts Lösung für das amerikanische Datumsformat

Unter https://support.microsoft.com/en-gb/help/245104/how-to-calculate-ages-before-1-1-1900-in-excel bietet Microsoft eine Lösung an. Wenn man in Excel die betroffene Arbeitsmappe offen hat und mit alt + F11 den Visual Basic Editor öffnet, muss man folgenden Code für eine neue Funktion in Excel als neues Modul einfügen (Abbildung 4), speichern und für Datumsdifferenzen die Formel =AgeFunc(startdate,enddate) ausführen.

Abbildung 4: Im Visual Basic Editor muss ein neues Modul mit dem Code eingefügt werden. Nach dem Speichern und Schließen kann die neue Formel genutzt werden.
Abbildung 4: Im Visual Basic Editor muss ein neues Modul mit dem Code eingefügt werden. Nach dem Speichern und Schließen kann die neue Formel genutzt werden.

Benutzt man diesen Code im deutschsprachigen Excel bzw. mit deutschen Datumsformaten, führt aber auch diese Funktion zu Fehlern. Dieser Code muss etwas angepasst werden.

Anpassung für das deutsche Datumsformat

Drei Veränderungen muss man vornehmen, wenn man die Lösung nutzen möchte, die Microsoft für die Berechnung von Datumsdifferenzen mit Daten vor 1900 uns anbietet. Abbildung 5 zeigt aus dem Code von Microsoft exemplarisch zwei Unterschiede zwischen dem amerikanischen und deutschen Datumsformat. Im Kommentar (grün) wird erklärt, dass in der vierten Zeile nach dem Seperator gesucht wird. In den USA werden Daten oft so notiert: 12/31/2000. Ein Schrägstrich trennt Monat, Tag und Jahr. Hier wurde nun stattdessen der Punkt eingefügt, da im deutschen Datumsformat der Punkt das gebräuchliche Trennzeichen ist (31.12.2000). Der zweite Unterschied ist die Reihenfolge von Monat und Tag bzw. Tag und Monat. Hier wurden nun die Variablen stday und stmon für Tag und Monat getauscht, da im Deutschen links der Tag und in der Mitte der Monat steht. Diese Veränderungen mussten im Code von Microsoft einige Male vorgenommen werden.

Abbildung 5: Der Unterschied zwischen dem deutschen und US-amerikanischen Datumsformat liegt in der Anordnung von Tag und Monat und im genutzten Trennzeichen.
Abbildung 5: Der Unterschied zwischen dem deutschen und US-amerikanischen Datumsformat liegt in der Anordnung von Tag und Monat und im genutzten Trennzeichen.

Die letzte Abweichung von der Anleitung von Microsoft ist folgende. Wie Abbildung 6 zeigt, soll die neue Funktion AgeFunc mit ihren zwei erwarteten Argumenten mittels eines Kommas zwischen den Argumenten aufgerufen werden. Wenigstens in der deutschsprachigen Version von Excel wird ein Semikolon dafür genutzt. Ein Komma führt zu einer Fehlermeldung.

Abbildung 6: Argumente einer Funktion werden in der deutschsprachigen Version von Excel mit einem Semikolon gentrennt.

Wenn diese drei Dinge berücksichtigt werden, kann die neue Formel genutzt werden, wie in Spalte E der Abbildung 7.

Abbildung 7: Spalte E arbeiten mit der von Microsoft gelieferten Lösung, die für das deutsche Datumsformat angepasst wurde.
Abbildung 7: Spalte E arbeiten mit der von Microsoft gelieferten Lösung, die für das deutsche Datumsformat angepasst wurde.

Der Code, der nun die Differenz zwischen zwei Daten, auch vor 1900 liegend, für das deutsche Datumsformat berechnet, ist folgender:

Achtung: Diese Arbeitsmappe muss im Excelformat mit Makros gespeichert werden und hat dann die Dateiendung .xlsm und nicht .xlsx. Sonst gehen alle Änderung verloren, da die Funktion nicht mehr aufgerufen werden kann.

Die in diesem Artikel genutzte Exceldatei Differenz_deutsches_Datum_vor1900.xlsm kann hier heruntergeladen werden: Differenz_deutsches_Datum_vor1900.zip

Bilder dieses Artikels: CC-BY-SA, Affenspass.de, 2019

Kommentieren

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahren Sie mehr darüber, wie Ihre Kommentardaten verarbeitet werden .