Robert liebt es, an Genealogie zu arbeiten. Manchmal, wenn er einen älteren Friedhof findet, ist anstelle eines Geburts- und Sterbedatums auf einem Grabstein nur ein Datum und ein Alter sichtbar. Beispiel: „geboren: 18. Januar 1801, gestorben 81 Jahre, 11 Monate, 17 Tage“ oder „Alter: 93 Jahre, 8 Monate, 22 Tage, gestorben am 18. März 1901“. Robert fragt sich, ob es eine Möglichkeit gibt, das fehlende Datum für den Tag zu berechnen.

Es gibt eine Möglichkeit, dies zu tun, aber es werden keine regulären Arbeitsblattfunktionen verwendet. Während Excel eine Vielzahl von Arbeitsblattfunktionen enthält, mit denen Sie Datumsangaben bearbeiten können, ist das „Basisdatum“ für Excel der 1. Januar 1901; Dies ist das Datum, ab dem alle Daten berechnet werden. (Sie können das Basisdatum, jedoch nur um drei Jahre, auf 1904 ändern. Diese Funktion wird zur Kompatibilität mit Excel auf dem Mac bereitgestellt.) Dies bedeutet, dass ältere Daten – wie sie beispielsweise für genealogische Zwecke auf dem Friedhof gefunden werden – dies können werden nicht direkt in Excel berechnet.

Glücklicherweise hat VBA diese Einschränkung nicht. Dies bedeutet, dass Sie einfach eine benutzerdefinierte Funktion (ein Makro) erstellen können, die die Mathematik für Sie erledigt. Beginnen Sie mit der Angabe des Startdatums (entweder Geburts- oder Sterbedatum)

in Zelle B1. Geben Sie dann in die Zellen B2: B4 die Anzahl der Jahre, Monate und Tage ein, um die Sie das Startdatum anpassen möchten. Wenn B1 ein Geburtsdatum enthält, sollten die Zellen B2: B4 positiv sein (Sie möchten sie zum Startdatum hinzufügen). Wenn B1 ein Sterbedatum enthält, sollte B2: B4 negativ sein (Sie möchten sie vom Startdatum abziehen).

Erstellen Sie dann dieses Makro:

Function FindDate(Start As Date, iYrs As Integer, _   iMths As Integer, iDays As Integer)



Application.Volatile     Dim D As Date

D = DateAdd("yyyy", iYrs, Start)

D = DateAdd("m", iMths, D)

D = DateAdd("d", iDays, D)



FindDate = Format(D, "m/d/yyyy")

End Function

In jeder Zelle, in der Sie das berechnete Datum anzeigen möchten, können Sie die folgende Formel eingeben:

=FindDate(B1,B2,B3,B4)

Das Ergebnis der Funktion ist ein formatiertes Datum, das das Startdatum darstellt, das durch die von Ihnen angegebenen Jahre, Monate und Tage angepasst wird. Wenn also Zelle B1 1/18/1801 enthält, Zelle B2 81 enthält, Zelle B3 11 enthält und Zelle B4 17 enthält, gibt die Funktion 1/4/1883 zurück. Wenn Zelle B1 18.03.1901 enthält, Zelle B2 -93 enthält, Zelle B3 -8 enthält und Zelle B4 -22 enthält, lautet das zurückgegebene Ergebnis 26.06.1807.

_Hinweis: _

Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der ExcelTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.

ExcelTips ist Ihre Quelle für kostengünstige Microsoft Excel-Schulungen.

Dieser Tipp (5896) gilt für Microsoft Excel 97, 2000, 2002 und 2003. Eine Version dieses Tipps für die Multifunktionsleistenschnittstelle von Excel (Excel 2007 und höher) finden Sie hier: