Alter bestimmen mit Datum vor und nach 1900
#1
Hallo Excelaner,

ich stehe vor einem Rätsel. ich möchte im Zuge der Ahnenforschung auch eine Statistik auswerten, u.a. wie Alt der Mann bzw. die Frau bei der Hochzeit war.
Die Datedif Funktion kenn ich und auch die Problematik, das ein Datum vor 1900 quasi für Excel nicht existiert.

anbei findet ihr eine int. Tabelle. 
Wie kann ich das Alter in Jahren zum Hochzeitstag inkl. Fehlerabfangen (also entweder kein Geb.-Datum bekannt, oder nicht geheiratet, trotzdem für die Spalte Alter Hochzeit per Formel ermitteln,
so das 
a) Alter berechnet wird, wenn beide Daten nach 1900 liegen
b) geb. Datum vor 1900 und Hochzeit nach 1900
und 
c) beides nach 1900 liegt

Office365

Danke
Gruß Armin


Angehängte Dateien
.xlsx   Testdatei Ahnen.xlsx (Größe: 18,98 KB / Downloads: 10)
Antworten Top
#2
Hallo Armin,

das geht nur mit einem Trick!

Der gregorianische Kalender ist regelmäßig, sodass er sich alle 400 Jahre wiederholt, was die Daten und Wochentage angeht.
(Gilt natürlich nicht für Ostern und Berechnung der beweglichen Feiertage, da hier ja der MOND entscheidend ist! Der ist nicht so regelmäßig.)

Wenn du bei jedem Datum (unabhängig, ob vor 1900 oder nach 1900 immer 2000 Jahre dranhängst (was ja auch im 400-er Rhythmus liegt), dann kannst du alle Daten von theoretisch 0001 - 7999 damit berechnen, sofern das jeweilige Datum nach gregorianischem Stil ist!

(s. Mappe)

Gruß Sigi


Angehängte Dateien
.xlsx   Testdatei Ahnen.xlsx (Größe: 19,15 KB / Downloads: 10)
[-] Folgende(r) 1 Nutzer sagt Danke an Sigi.21 für diesen Beitrag:
  • Jockel
Antworten Top
#3
Hallo,

VBA kennt die Grenze 1.1.1900 nicht, es können zumindest wenige Jahrhunderte früher erfasst werden.

Code:
Sub Datum_vor_1900()
Dim Datum As Date

Datum = CDate("1.12.1895") + 1

Debug.Print Datum   ' ergibt: 02.12.1895
End Sub

mfg

PS: Windows kann wohl bis "zum ersten Tag" rechnen, also ca. 4.000 BC.
Antworten Top
#4
Hi,

interessante Lektüre zum Thema:

https://www.herber.de/excelformeln/pages...r_Chr.html
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Antworten Top
#5
Hallo,

als Ergänzung zu meiner Lösung in #2 sei noch gesagt:
1. alle Daten vor 1900 sind natürlich Text, bitte immer als TT.MM.JJJJ eingeben.
2. alle Daten ab dem 01.03.1900 können normal als Exceldatum (Zahl!) eingegeben werden.
3. alle Daten vom 01.01.1900 bis 01.03.1900 müssen ebenfalls als "TEXT" eingegeben werden, da Excel den 29.02.1900 als Datum kennt. (den 29.02.1900 gab es nie!)
    Falls diese Daten "normal" eingegeben werden, interpretiert Excel diese als Zahl und stellt sie im xls-Datumsformat dar. Aber Exceldaten vor dem 01.03.1900 sind leider falsch!

Gruß Sigi
Antworten Top
#6
Hallo Siggi, 
ich hatte das vorher auch immer umgangen mit dem 400er Schritten, dachte aber, es muss doch irgendwie noch anders gehen

Gruß

(31.03.2025, 16:44)BoskoBiati schrieb: Hi,

interessante Lektüre zum Thema:

https://www.herber.de/excelformeln/pages...r_Chr.html

Danke Dir, werde ich mir in Ruhe anschauen

(31.03.2025, 15:56)Fennek schrieb: Hallo,

VBA kennt die Grenze 1.1.1900 nicht, es können zumindest wenige Jahrhunderte früher erfasst werden.

Code:
Sub Datum_vor_1900()
Dim Datum As Date

Datum = CDate("1.12.1895") + 1

Debug.Print Datum   ' ergibt: 02.12.1895
End Sub

mfg

PS: Windows kann wohl bis "zum ersten Tag" rechnen, also ca. 4.000 BC.



Leider ist VBA keine Option .. Dank Dir trotzdem
Antworten Top
#7
Mit Power Query geht es auch.


Angehängte Dateien
.xlsx   cef - Alter bestimmen mit Datum vor und nach 1900 (PQ).xlsx (Größe: 35,06 KB / Downloads: 6)
Antworten Top
#8
Hallo,

da du als Version O365 angegeben hast, kannst du die Formel zur Addition der 2000 Jahre in eine benutzerdefinierte Funktion in den Namensmanager legen. Ich habe diese Funktion "Datum2kj" genannt. Sie kann ganz einfach verwendet werden, zB.:
=Datum2kj("19.4.1875") ergibt als Resultat das Datum 19.04.3875 bzw. 721464
=Datum2kj(DATUM(1975;4;19)) bzw. =Datum2kj("19.4.1975") bzw. =Datum2kj(27503) ergibt als Resultat das Datum 19.4.3975 bzw. 757988.

Dadurch kann zB. die folgende Formel in Zelle Z17 (Datei von Sigi.21 Posting #2):
PHP-Code:
=WENNFEHLER(
DATEDIF(WENNISTZAHL($H17); $H17 365,2425*2000DATWERT(LINKS($H17LÄNGE($H17)-4) & RECHTS($H17;4)+2000));
WENNISTZAHL(T17); T17 365,2425*2000DATWERT(LINKS(T17LÄNGE(T17)-4) & RECHTS(T17;4)+2000)); "y") & " Jahre, " &
DATEDIF(WENNISTZAHL($H17); $H17 365,2425*2000DATWERT(LINKS($H17LÄNGE($H17)-4) & RECHTS($H17;4)+2000)); WENNISTZAHL(T17); T17 365,2425*2000DATWERT(LINKS(T17LÄNGE(T17)-4) & RECHTS(T17;4)+2000)); "ym") & " Monate, " &
DATEDIF(WENNISTZAHL($H17); $H17 365,2425*2000DATWERT(LINKS($H17LÄNGE($H17)-4) & RECHTS($H17;4)+2000)); WENNISTZAHL(T17); T17 365,2425*2000DATWERT(LINKS(T17LÄNGE(T17)-4) & RECHTS(T17;4)+2000)); "md") & " Tage";
"?"
vereinfacht werden zu:
PHP-Code:
=WENNFEHLER(
DATEDIF(Datum2kj($H17); Datum2kj($T17); "y") & " Jahre, " &
DATEDIF(Datum2kj($H17); Datum2kj($T17); "ym") & " Monate, " &
DATEDIF(Datum2kj($H17); Datum2kj($T17); "md") & " Tage";
"?"

oder die folgende Formel in Q17 (Datei von Sigi.21 Posting #2):
PHP-Code:
=WENNFEHLER(
DATEDIF(
WENNISTZAHL($H17); $H17 365,2425*2000DATWERT(LINKS($H17LÄNGE($H17)-4) & RECHTS($H17;4)+2000));
WENNISTZAHL($N17); $N17 365,2425*2000DATWERT(LINKS($N17LÄNGE($N17)-4) & RECHTS($N17;4)+2000)); "Y");
"?"
vereinfacht werden zu:
PHP-Code:
=WENNFEHLER(DATEDIF(Datum2kj($H17);Datum2kj($N17); "Y");"?"

Datei liegt bei.


Angehängte Dateien
.xlsx   Luna-Maxx_Testdatei Ahnen1.xlsx (Größe: 23,52 KB / Downloads: 5)
Gruß Anton.

Windows 10 64bit
Office365 32bit
Antworten Top
#9
Hallo Anton,

gute Idee.
Dann kannst du auch noch die Fkt. DateDif() mit ins Lambda verpacken.
(für Daten gregorianischen Stils, vor oder nach 1900,  s. Mappe, xls365 )

Gruß Sigi


Angehängte Dateien
.xlsx   DatumDiff.xlsx (Größe: 12,45 KB / Downloads: 7)
Antworten Top
#10
Ich wusste das Ihr Mega seid !

Ich muss mir die Dateien  / Formeln inkl. Namensmanager mal in Ruhe anschauen, Nur kopieren und einbauen reicht mir ja nicht .. ich will ja auch die Funktionsweise verstehen .. nur so kann es nachvollziehen und verstehen

Danke Euch !

Ich vermute mal, das ganze wird auch unter Office 2024 laufen oder ? 
O 365 ist dienstlich
O 2024 ist privat
O 2016 / 2019 läuft noch auch einen älteren WIN10 Rechner

Grüß und Danke nochmal an alle 
Armin
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste