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).

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

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

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.

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.

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.

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

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