Supportnet / Forum / Tabellenkalkulation
Alter anahnd von Geburtsdatum und aktuellem Datum errechnen??
Frage
hallo zusammen,
habe eine excel-datei in der in einer zelle das geburtsdatum eingetragen ist. nun möchte ich das aktuelle alter in jahren errechnen als differenz von geburtsdatum zum aktuellem datum.
wie kann ich dies machen?
Antwort 1 von metax
hallo,
also es gibt die Funktion "jahr" in excel
=JAHR(HEUTE())-JAHR(A1)
wobei in a1 das Geburtsdatum steht.
also es gibt die Funktion "jahr" in excel
=JAHR(HEUTE())-JAHR(A1)
wobei in a1 das Geburtsdatum steht.
Antwort 2 von poorfirele
@ metax
der ansatz ist schon richtig, bloß dass problem ist nun, dass er das alter als differenz der jahre errechnet und nicht als differenz aus den geburtsdaten.
sonst noch jemand eine idee oder läßt sich die obige formel abändern?
der ansatz ist schon richtig, bloß dass problem ist nun, dass er das alter als differenz der jahre errechnet und nicht als differenz aus den geburtsdaten.
sonst noch jemand eine idee oder läßt sich die obige formel abändern?
Antwort 3 von draack
Hi!
@metax: Leider verloren.
Richtig ist:
(ebenfalls mit Geburtsdatum in A1)
Ciao!
Volker.
@metax: Leider verloren.
Richtig ist:
=DATEDIF(A1;HEUTE();"Y")(ebenfalls mit Geburtsdatum in A1)
Ciao!
Volker.
Antwort 4 von poorfirele
@draak
erst einmal danke. aber die formel funktioniert bei mir nicht. dann es daran liegen, dass ich eine deutsche excel-version habe?
erst einmal danke. aber die formel funktioniert bei mir nicht. dann es daran liegen, dass ich eine deutsche excel-version habe?
Antwort 5 von viper69
Hallo!
Wie gibst du denn das Geburtsdatum ein??
LG
viper69
Wie gibst du denn das Geburtsdatum ein??
LG
viper69
Antwort 6 von MixMax
bei mir gehts, formel in A2 eingetragen, mein geburtstag in A1 und ergebniss ist 24 ;-)
Antwort 7 von draack
Hi!
Hmmmm. Bei meiner deutschen Excel 97 klappt's (auch wenn die Funktion in der Online-Hilfe nicht dokumentiert ist) mit DATEDIF. Lt. div. Webseiten ist sie aber in 97,2000 und 2002 vorhanden.
Für ältere Versionen von Excel (5, 95):
http://www.cpearson.com/excel/datedif.htm
Ich nehme also einfach mal an, dass Du etwas falsch gemacht hast:
Das Datumsfeld muss auch ein solches sein (KEIN Text!), das Ergebnis ist natürlich eine ZAHL - kein Datum!
Ciao!
Volker.
Hmmmm. Bei meiner deutschen Excel 97 klappt's (auch wenn die Funktion in der Online-Hilfe nicht dokumentiert ist) mit DATEDIF. Lt. div. Webseiten ist sie aber in 97,2000 und 2002 vorhanden.
Für ältere Versionen von Excel (5, 95):
http://www.cpearson.com/excel/datedif.htm
Ich nehme also einfach mal an, dass Du etwas falsch gemacht hast:
Das Datumsfeld muss auch ein solches sein (KEIN Text!), das Ergebnis ist natürlich eine ZAHL - kein Datum!
Ciao!
Volker.
Antwort 8 von viper69
Am einfachsten gehts wenn man das Geburtsdatum genau so eingibt:
23/4/74
LG
viper69
23/4/74
LG
viper69
Antwort 9 von Tronje
Antwort 10 von AndreasClaas
Also ich mache es immer so:
=JAHR(HEUTE())-E10-(WENN((ODER(MONAT(HEUTE())<D10;(UND(MONAT(HEUTE())=D10;TAG(HEUTE())<C10))));1;0))
C=Tag,D=Monat,E=Jahr
In der Formel wird auch geprüft ob
der Geburtstag schon gewesen ist.
Viele Grüße
Andreas
=JAHR(HEUTE())-E10-(WENN((ODER(MONAT(HEUTE())<D10;(UND(MONAT(HEUTE())=D10;TAG(HEUTE())<C10))));1;0))
C=Tag,D=Monat,E=Jahr
In der Formel wird auch geprüft ob
der Geburtstag schon gewesen ist.
Viele Grüße
Andreas
Antwort 11 von AndreasClaas
Nachtrag: Mit den Funktionen
Jahr(), Monat(),Tag()kannst Du die
Eingabe natürlich noch vereinfachen.
Andreas
Jahr(), Monat(),Tag()kannst Du die
Eingabe natürlich noch vereinfachen.
Andreas
Antwort 12 von MixMax
wie umständlich... also Draack deine formel hat mir ja am besten gefallen.
aber das andere geht bestimmt auch irgendwie.
zellenformatierung hatte ich übrigens standart (neues excelblatt)
als datum einfach 16.04.1978 eingegeben also deutsches format.
aber das andere geht bestimmt auch irgendwie.
zellenformatierung hatte ich übrigens standart (neues excelblatt)
als datum einfach 16.04.1978 eingegeben also deutsches format.
Antwort 13 von AndreasClaas
Ja, die Funktion ist nicht schlecht.
Kannte ich auch noch nicht.
Aber auch bei der Funktion wird nicht
geprüft ob der Geburtstag schon gewesen ist oder ob die Feier noch ansteht.
..ist gerade bei den 29sten und 39sten
Geburtagen besonders wichtig :-))
Andreas
Kannte ich auch noch nicht.
Aber auch bei der Funktion wird nicht
geprüft ob der Geburtstag schon gewesen ist oder ob die Feier noch ansteht.
..ist gerade bei den 29sten und 39sten
Geburtagen besonders wichtig :-))
Andreas
Antwort 14 von michael oberley
hi alle
dazu haette ich zu sagen das zum beispiel der windows calender rueckwaerts nur bis 1980 geht dabei ist der ursprung aber 1582.wer koennte zum beispiel mal mit einer formel die daten der uroma berechnen sie hat geburtstag am 28.12.1899 das jahr 1900 war ein besonderes da die schaltung wegviel jetzt bin ich doch gespannt ob das exel noch kann INFORMIERT MICH BITTEEEEEEE.
gruss nighty
dazu haette ich zu sagen das zum beispiel der windows calender rueckwaerts nur bis 1980 geht dabei ist der ursprung aber 1582.wer koennte zum beispiel mal mit einer formel die daten der uroma berechnen sie hat geburtstag am 28.12.1899 das jahr 1900 war ein besonderes da die schaltung wegviel jetzt bin ich doch gespannt ob das exel noch kann INFORMIERT MICH BITTEEEEEEE.
gruss nighty
Antwort 15 von Aliba
Hi nighty,
interessante Aufgabe, werde mich mal bei Gelegenheit drum kümmern. Müßte sogar möglich sein. Grundidee:
Geb.-Datum steht in A1
Formelansatz :
=WENN(ISTZAHL(A1);die normale Formel zur Berechnung des Geb.-Tages;JAHR(JETZT()-RECHTS(A1;4)*1)
So hätte man schon mal die Jahre. Jetzt müßte noch abgefragt werden, ob MONAT(JETZT() größer oder gleich TEIL(A1(FINDEN(".";A1)+1;2), dann den Tag abklären bei Monatsgleichheit und dann eben entsprechend das Ergebnis um 1 korrigieren.
Also wie gesagt , in ner ruhigen Minute werde ich das mal angehen.
CU Aliba
interessante Aufgabe, werde mich mal bei Gelegenheit drum kümmern. Müßte sogar möglich sein. Grundidee:
Geb.-Datum steht in A1
Formelansatz :
=WENN(ISTZAHL(A1);die normale Formel zur Berechnung des Geb.-Tages;JAHR(JETZT()-RECHTS(A1;4)*1)
So hätte man schon mal die Jahre. Jetzt müßte noch abgefragt werden, ob MONAT(JETZT() größer oder gleich TEIL(A1(FINDEN(".";A1)+1;2), dann den Tag abklären bei Monatsgleichheit und dann eben entsprechend das Ergebnis um 1 korrigieren.
Also wie gesagt , in ner ruhigen Minute werde ich das mal angehen.
CU Aliba
Antwort 16 von Aliba
Hi nighty, noch was.
Die Schaltung ist eigentlich egal, da der Geburtstag ja immer 1 Jahr später ist, unabhängig ob da 1 Tag mehr oder weniger dazwischen liegt.
CU Aliba
Die Schaltung ist eigentlich egal, da der Geburtstag ja immer 1 Jahr später ist, unabhängig ob da 1 Tag mehr oder weniger dazwischen liegt.
CU Aliba
Antwort 17 von michael oberley
hi aliba
schniff du hast recht mann koennte die frage ja ausweiten wieviele tage ist die uroma alt.
gruss nighty
schniff du hast recht mann koennte die frage ja ausweiten wieviele tage ist die uroma alt.
gruss nighty
Antwort 18 von Knubbel
Hi Ihr Kalenderspezialisten!
@nighty
Speziell zu Deiner Frage, wie alt ist die Uroma?
Hier ein Kalenderalgorithmus, der zwar die Rechenleistung von MS sprengt, dafür aber vom 15.10.1582 bis ins Jahr 5316 gültig ist (liegt am gregorianischen Kalender und den "Sekunden" die den Tag vom Sonnenjahr unterscheiden)
Nun zum eigentlichen Problem:
Bei Excel ist diese Problemlösung zwar machbar, aber nicht so einfach (es sei denn, man beherrscht VB, was ich nicht kann). Hier mein Vorschlag zur Lösung:
[Code]
R Wochentag
Tag (T) 18 Eingabefeld Tag 0 Sonntag
Monat (M) 5 Eingabefeld Monat 1 Montag
Jahr (J) 2002 Eingabefeld Jahr (4-stellig) 2 Dienstag
3 Mittwoch
4 Donnerstag
Z4 =WENN(B4/4<>GANZZAHL(B4/4);0;1) Hilfsvariable 1 (4-teilbar) 5 Freitag
Z100 =WENN(B7=1;WENN(B4/100<>GANZZAHL(B4/100);1;0);0) Hilfsvariable 2 (100 teilbar) 6 Samstag
Z400 =WENN(B8=0;WENN(B4/400<>GANZZAHL(B4/400);0;1)) Hilfsvariable 3 (400 teilbar)
Z' =B9 Hilfsvariable
V =WENN(B3<=2;31*(B3-1);GANZZAHL((306*B3-324)/10))
Z =B10+365*(B4-1)+GANZZAHL((B4-1)/4)-GANZZAHL((B4-1)/100)+GANZZAHL((B4-1)/400)
Tageszahl (S) =B14+B12+B2 Tageszahl
R =B16-GANZZAHL(B16/7)*7 Hilfsvariable für Wochentag
W =SVERWEIS(B18;E2:F8;2) Wochentag
Datum =DATWERT(B2&"."&B3&"."&B4) =B22
Leider ist der Code nicht einfach herüber gekommen. Hier aber einige Erklärungen:
Spalte A ist Erklärung der Variablen
Spalte B enthält die Formeln
Spalte C definiert nochmals die Variablen
Spalte D ist leer
Spalten E F enthalten eine Matrix, aus der der Wochentag ermittelt wird.
Nun zum Handling:
In die Felder B2 = Tag, B3 = Monat, B4 = Jahr (vierstellig) wird das gewünschte Datum eingetragen.
Im Feld B16 wird die sogenannte Tageszahl ausgewiesen. Dies ist eine Zahl, die angibt wieviele Tage seit einem fiktiven Anfangsdatum verstrichen sind.
Z.B. 15.10.1582 --> Tageszahl 577.736
18.05.2002 --> Tageszahl 730.988
Mit dieser Angabe kann man nun Datumsdifferenzen errechnen (z.B. Geburtsdatum / heutiges Datum, funktioniert auch mit Uromas-Uromas-Geburtsdatum)
Eine weitere Funktion ist, aus der Tageszahl den Wochentag zu ermitteln. Hierzu dient die Variable R in B18. Hiermit kann aus der Matrix E2-F8 der zur Variablen R gehörende Wochentag ausgelesen werden (Ergebnis C20).
In C22 wird das Datum auf MS-Format gebracht.
Ich hoffe, ich habe jetzt viel Irritation geschaffen. Bin aber zu weiteren Erklärungen zu haben.
mfg Knubbel
@nighty
Speziell zu Deiner Frage, wie alt ist die Uroma?
Hier ein Kalenderalgorithmus, der zwar die Rechenleistung von MS sprengt, dafür aber vom 15.10.1582 bis ins Jahr 5316 gültig ist (liegt am gregorianischen Kalender und den "Sekunden" die den Tag vom Sonnenjahr unterscheiden)
Nun zum eigentlichen Problem:
Bei Excel ist diese Problemlösung zwar machbar, aber nicht so einfach (es sei denn, man beherrscht VB, was ich nicht kann). Hier mein Vorschlag zur Lösung:
[Code]
R Wochentag
Tag (T) 18 Eingabefeld Tag 0 Sonntag
Monat (M) 5 Eingabefeld Monat 1 Montag
Jahr (J) 2002 Eingabefeld Jahr (4-stellig) 2 Dienstag
3 Mittwoch
4 Donnerstag
Z4 =WENN(B4/4<>GANZZAHL(B4/4);0;1) Hilfsvariable 1 (4-teilbar) 5 Freitag
Z100 =WENN(B7=1;WENN(B4/100<>GANZZAHL(B4/100);1;0);0) Hilfsvariable 2 (100 teilbar) 6 Samstag
Z400 =WENN(B8=0;WENN(B4/400<>GANZZAHL(B4/400);0;1)) Hilfsvariable 3 (400 teilbar)
Z' =B9 Hilfsvariable
V =WENN(B3<=2;31*(B3-1);GANZZAHL((306*B3-324)/10))
Z =B10+365*(B4-1)+GANZZAHL((B4-1)/4)-GANZZAHL((B4-1)/100)+GANZZAHL((B4-1)/400)
Tageszahl (S) =B14+B12+B2 Tageszahl
R =B16-GANZZAHL(B16/7)*7 Hilfsvariable für Wochentag
W =SVERWEIS(B18;E2:F8;2) Wochentag
Datum =DATWERT(B2&"."&B3&"."&B4) =B22
Leider ist der Code nicht einfach herüber gekommen. Hier aber einige Erklärungen:
Spalte A ist Erklärung der Variablen
Spalte B enthält die Formeln
Spalte C definiert nochmals die Variablen
Spalte D ist leer
Spalten E F enthalten eine Matrix, aus der der Wochentag ermittelt wird.
Nun zum Handling:
In die Felder B2 = Tag, B3 = Monat, B4 = Jahr (vierstellig) wird das gewünschte Datum eingetragen.
Im Feld B16 wird die sogenannte Tageszahl ausgewiesen. Dies ist eine Zahl, die angibt wieviele Tage seit einem fiktiven Anfangsdatum verstrichen sind.
Z.B. 15.10.1582 --> Tageszahl 577.736
18.05.2002 --> Tageszahl 730.988
Mit dieser Angabe kann man nun Datumsdifferenzen errechnen (z.B. Geburtsdatum / heutiges Datum, funktioniert auch mit Uromas-Uromas-Geburtsdatum)
Eine weitere Funktion ist, aus der Tageszahl den Wochentag zu ermitteln. Hierzu dient die Variable R in B18. Hiermit kann aus der Matrix E2-F8 der zur Variablen R gehörende Wochentag ausgelesen werden (Ergebnis C20).
In C22 wird das Datum auf MS-Format gebracht.
Ich hoffe, ich habe jetzt viel Irritation geschaffen. Bin aber zu weiteren Erklärungen zu haben.
mfg Knubbel
Antwort 19 von Knubbel
Hi nighty,
schau mal in Deinem Postfach nach. Du hast Nachricht von mir
mfg Knubbel
schau mal in Deinem Postfach nach. Du hast Nachricht von mir
mfg Knubbel
Antwort 20 von Knubbel
Hi Ihr Kalenderspezialisten!
sorry für den schlechten Code in Antwort 10.
Hier noch mal ein Versuch, die Formeln neu rüber zu bringen (allerdings sind nun die Zellen anders bezeichnet):
Dies ist nur die Spalte B aus meiner vorhergehenden Beschreibung, allerdings ohne Leerzeilen.
In B2 wird der Tag
in B3 wird der Monat
in B4 wird das Jahr (vierstellig) eingegeben.
In B11 wird die Tageszahl ausgegeben
In B13 wird der Wochentag ausgegeben
In B14 wird das Datum im MS-Format ausgegeben.
Die Matrix für die Wochentagermittlung ist in E3-F9 abgelegt.
Ich hoffe, dass ich hierdurch meinen Müll von oben etwas entwirrt habe. Die Programmlogik ist jedoch nicht verändert worden.
mfg Knubbel
sorry für den schlechten Code in Antwort 10.
Hier noch mal ein Versuch, die Formeln neu rüber zu bringen (allerdings sind nun die Zellen anders bezeichnet):
1
3
2001
=WENN(B4/4<>GANZZAHL(B4/4);0;1)
=WENN(B5=1;WENN(B4/100<>GANZZAHL(B4/100);1;0);0)
=WENN(B6=0;WENN(B4/400<>GANZZAHL(B4/400);0;1))
=B7
=WENN(B3<=2;31*(B3-1);GANZZAHL((306*B3-324)/10))
=B8+365*(B4-1)+GANZZAHL((B4-1)/4)-GANZZAHL((B4-1)/100)+GANZZAHL((B4-1)/400)
=B10+B9+B2
=B11-GANZZAHL(B11/7)*7
=SVERWEIS(B12;E3:F9;2)
=DATWERT(B2&"."&B3&"."&B4)
Dies ist nur die Spalte B aus meiner vorhergehenden Beschreibung, allerdings ohne Leerzeilen.
In B2 wird der Tag
in B3 wird der Monat
in B4 wird das Jahr (vierstellig) eingegeben.
In B11 wird die Tageszahl ausgegeben
In B13 wird der Wochentag ausgegeben
In B14 wird das Datum im MS-Format ausgegeben.
Die Matrix für die Wochentagermittlung ist in E3-F9 abgelegt.
Ich hoffe, dass ich hierdurch meinen Müll von oben etwas entwirrt habe. Die Programmlogik ist jedoch nicht verändert worden.
mfg Knubbel
Antwort 21 von Knubbel
Nachtrag:
sorry, es sollte natürlich heissen auf Antwort 18
sorry, es sollte natürlich heissen auf Antwort 18
Antwort 22 von Knubbel
sorry, sorry,
Fehler in Antwort 20:
Richtig heist der Code in B7
mfg Knubbel
Fehler in Antwort 20:
Richtig heist der Code in B7
=WENN(B6=0;WENN(B4/400<>GANZZAHL(B4/400);0);1)
mfg Knubbel
Antwort 23 von Knubbel
Hi Ihr Kalenderspezialisten!
Es tut mir leid, dass ich Euch oben einen nicht sauber funktionierenden Code ins Forum gestellt habe. Hier aber jetzt eine getestete Version:
Felder:
B1 = Eingabe Tag
B2 = Eingabe Monat
B3 = Eingabe Jahr (vierstellig)
B4 = 1, wenn Schaltjahr, 0, wenn kein Schaltjahr
B5 - B7 = Hinweis, wenn das eingegebene Datum nicht existiert
B8 - B10 = Hilfsvariable
B11 = Tageszahl (z.B. 730.889 für 19.05.2002)
B12 = Hilfsvariable zur Wochentagermttlung
B13 = Wochentag, ermittelt aus der Matrix F2..G8
B14 Standard-Schreibweise des Datums.
Anmerkung zur Datumsberechnung mit MS (Office 2002):
Ab 1.1.1900 kann MS zwar das Datumsformat mit Wochentag ausgeben, ist aber bis einschliesslich 28.2.1900 falsch.
Erst ab 1.3.1900 wird das Datumsformat richtig ausgegeben.
Ich hoffe, dass Ihr jetzt mit diesem Programmcode einverstanden seid.
Für meinen vorhergehenden (ungeprüften) Code bitte ich nochmals um Verzeihung.
mfg Knubbel
Es tut mir leid, dass ich Euch oben einen nicht sauber funktionierenden Code ins Forum gestellt habe. Hier aber jetzt eine getestete Version:
19
5
2002
=WENN(B3/4<>GANZZAHL(B3/4);0;WENN(B3/100<>GANZZAHL(B3/100);1;WENN(B3/400<>GANZZAHL(B3/400);0;1)))
=WENN(UND(B2=2;B4=0;B1>28);"Datumfehler";WENN(UND(B2=2;B4=1;B1>29);"Datumfehler";""))
=WENN(UND(ODER(B2=4;B2=6;B2=9;B2=11);B1>30);"Datumfehler";"")
=WENN(UND(ODER(B2=1;B2=3;B2=5;B2=7;B2=8;B2=10;B2=12);B1>31);"Datumfehler";"")
=WENN(B2<=2;31*(B2-1);GANZZAHL((306*B2-324)/10))
=365*(B3-1)+GANZZAHL((B3-1)/4)-GANZZAHL((B3-1)/100)+GANZZAHL((B3-1)/400)
=WENN(B2<=2;B9;B4+B9)
=B10+B8+B1
=B11-GANZZAHL(B11/7)*7
=SVERWEIS(B12;F2:G8;2)
=B1&"."&B2&"."&B3
Felder:
B1 = Eingabe Tag
B2 = Eingabe Monat
B3 = Eingabe Jahr (vierstellig)
B4 = 1, wenn Schaltjahr, 0, wenn kein Schaltjahr
B5 - B7 = Hinweis, wenn das eingegebene Datum nicht existiert
B8 - B10 = Hilfsvariable
B11 = Tageszahl (z.B. 730.889 für 19.05.2002)
B12 = Hilfsvariable zur Wochentagermttlung
B13 = Wochentag, ermittelt aus der Matrix F2..G8
B14 Standard-Schreibweise des Datums.
Anmerkung zur Datumsberechnung mit MS (Office 2002):
Ab 1.1.1900 kann MS zwar das Datumsformat mit Wochentag ausgeben, ist aber bis einschliesslich 28.2.1900 falsch.
Erst ab 1.3.1900 wird das Datumsformat richtig ausgegeben.
Ich hoffe, dass Ihr jetzt mit diesem Programmcode einverstanden seid.
Für meinen vorhergehenden (ungeprüften) Code bitte ich nochmals um Verzeihung.
mfg Knubbel
Antwort 24 von michael oberley
hi knubbel (ist ja niedlicher name)
vielen dank fuer deine muehe und deine emails wenn du der meinung bist das die laufzeit (grrr wie immer) zu langsam ist so ist es doch an uns dies zu aendern und zu optinmieren hach du wirst sehen wir koennen das noch besser ich werd den verflixten gregojanischen kalender als makro definieren der natuerlich auch auf einen p1 laufen sollte(in annehmbarer zei versteht sich),ich halt euch auf den laufenden.
gruss nighty
p.s.
grummel grummel ich hab immer noch kein bildmaterial vom kalendersaal des vaticans.
vielen dank fuer deine muehe und deine emails wenn du der meinung bist das die laufzeit (grrr wie immer) zu langsam ist so ist es doch an uns dies zu aendern und zu optinmieren hach du wirst sehen wir koennen das noch besser ich werd den verflixten gregojanischen kalender als makro definieren der natuerlich auch auf einen p1 laufen sollte(in annehmbarer zei versteht sich),ich halt euch auf den laufenden.
gruss nighty
p.s.
grummel grummel ich hab immer noch kein bildmaterial vom kalendersaal des vaticans.
Antwort 25 von Knubbel
Hi Ihr Kalenderspetialisten!
@nighty
Auf Deine Frage im threat vom 17.03.02 weiss ich auch keine Antwort.
Nach meinem Wissen basieren alle bisherigen Kalenderberechnungen auf einem weit in der Vergangenheit liegendem Bezugsdatum.
Nach meinem in Antwort 23 aufgeführten Code hat der 1.1.0001 die Tageszahl 1. Alle anderen Daten sind hiervon abgeleitet (nach den Vorgaben des gregorianischen Kalenders: 15.10.1582 ist ein Freitag)
Ob dieser gregorianische Kalender (in der Weltgeschichte) optimal ist, wird bezweifelt: siehe hierzu MS-Encarta/Kalender. Hier wird behauptet, dass der griechisch-orthodoxe Kalender die genaueste Kalenderregelung hat (nur wer kennt diesen, und niemand wendet ihn in unserem Jahrhundert an).
Daher baue ich (in meinem jetzigen Leben) auf den in der westlichen Welt anerkannten (gregorianischen) Kalender, zumal er bis ins Jahr 5.316 die Wochentage offensichtlich richtig bestmmt. Wenn auch unsere heutigen Astrogeologen feststellen, dass ab und zu mal eine "Schaltsekunde" beim Jahreswechsel eingelegt werden mus.
Viel Spass bei diesem Problem!
mfg Knubbel (Knubbel ist doch wohl niedlich?)
@nighty
Auf Deine Frage im threat vom 17.03.02 weiss ich auch keine Antwort.
Nach meinem Wissen basieren alle bisherigen Kalenderberechnungen auf einem weit in der Vergangenheit liegendem Bezugsdatum.
Nach meinem in Antwort 23 aufgeführten Code hat der 1.1.0001 die Tageszahl 1. Alle anderen Daten sind hiervon abgeleitet (nach den Vorgaben des gregorianischen Kalenders: 15.10.1582 ist ein Freitag)
Ob dieser gregorianische Kalender (in der Weltgeschichte) optimal ist, wird bezweifelt: siehe hierzu MS-Encarta/Kalender. Hier wird behauptet, dass der griechisch-orthodoxe Kalender die genaueste Kalenderregelung hat (nur wer kennt diesen, und niemand wendet ihn in unserem Jahrhundert an).
Daher baue ich (in meinem jetzigen Leben) auf den in der westlichen Welt anerkannten (gregorianischen) Kalender, zumal er bis ins Jahr 5.316 die Wochentage offensichtlich richtig bestmmt. Wenn auch unsere heutigen Astrogeologen feststellen, dass ab und zu mal eine "Schaltsekunde" beim Jahreswechsel eingelegt werden mus.
Viel Spass bei diesem Problem!
mfg Knubbel (Knubbel ist doch wohl niedlich?)
Antwort 26 von Knubbel
@nighty
Bist Du noch nicht weiter gekommen?
mfg Knubbel
Bist Du noch nicht weiter gekommen?
mfg Knubbel
Antwort 27 von michael oberley
hi knubbel
email abgeschickt hoffe ich jedenfalls in der ablage ist sie jedenfalls noch womit ich auch nie weiss ob sie nun verschickt ist ,grrrrr werden sie wohl mit absicht so machen,das letze mal versandte ich die selbe email dreimal muss wohl noch daran arbeiten.achja es ist SAMSTAG ca. 7 uhr dreissig und wuensche ALLEN einen wunderschoenen tag.bei mir scheint die sonne schon in SPANDAU versteht sich (berlin eingemeindet).
gruss nighty
email abgeschickt hoffe ich jedenfalls in der ablage ist sie jedenfalls noch womit ich auch nie weiss ob sie nun verschickt ist ,grrrrr werden sie wohl mit absicht so machen,das letze mal versandte ich die selbe email dreimal muss wohl noch daran arbeiten.achja es ist SAMSTAG ca. 7 uhr dreissig und wuensche ALLEN einen wunderschoenen tag.bei mir scheint die sonne schon in SPANDAU versteht sich (berlin eingemeindet).
gruss nighty
Antwort 28 von michael oberley
hi aliba
schon experimentiert ??? !!!
gruss nighty
schon experimentiert ??? !!!
gruss nighty
Antwort 29 von Aliba
Hi nighty,
bislang noch nicht. Bin zur Zeit geschäftlich viel unterwegs, dann war das SN-Treffen. Wie gesagt da brauch ich mal ne ruhige Minute.
Wünsche Dir ebenfalls einen schönen Tag und bei uns scheint die Sonne auch.
CU Aliba
bislang noch nicht. Bin zur Zeit geschäftlich viel unterwegs, dann war das SN-Treffen. Wie gesagt da brauch ich mal ne ruhige Minute.
Wünsche Dir ebenfalls einen schönen Tag und bei uns scheint die Sonne auch.
CU Aliba
Antwort 30 von Knubbel
Hi nighty,
Deine Mail ist angekommen. Kann mich aber jetzt nicht damit befassen, da ich für Deutschland die Daumen drücken muss.
mfg Knubbel
Deine Mail ist angekommen. Kann mich aber jetzt nicht damit befassen, da ich für Deutschland die Daumen drücken muss.
mfg Knubbel
Antwort 31 von nighty
hi alle
von knubbel die formeln sind spitze
aliba und ich haben eine fertige tabelle angefertigt wobei aliba sie noch kommplettiert hat,wenn sie noch jemand haben moechte postet.
gruss nighty
p.s.
bitte nicht auf schreibfehler achten grummel
von knubbel die formeln sind spitze
aliba und ich haben eine fertige tabelle angefertigt wobei aliba sie noch kommplettiert hat,wenn sie noch jemand haben moechte postet.
gruss nighty
p.s.
bitte nicht auf schreibfehler achten grummel
Antwort 32 von Knubbel
@nighty
DANKE
Meine Adresse stimmt. Wenn es Dir nichts aus macht, schicke mir doch bitte mal Euer Ergebnis.
mfg Ihr Kalenderspezialisten, Knubbel
DANKE
Meine Adresse stimmt. Wenn es Dir nichts aus macht, schicke mir doch bitte mal Euer Ergebnis.
mfg Ihr Kalenderspezialisten, Knubbel
Antwort 33 von peko
Hi ihr Kalenderspezialisten!
Das genaue Alter der Ur-Ur-...-Oma lässt sich schon berechnen, auch ohne Visual Basic. Die Aufgabe lautet eigentlich, die Differenz in Jahren, Monaten und Tagen zweier beliebiger Daten zu berechnen. Die Grundidee ist, sich schrittweise vom Startdatum aus in ganzen Jahren, ganzen Monaten und schließlich Tagen dem Zieldatum anzunähern. Da EXCEL nur Datumsangaben ab dem 1.1.1900 zulässt, müssen Start- und Zieldatum anders eingegeben werden. Also los:
Die Zellen B2 und B10 werden (vor der Eingabe!) als Textzellen formatiert. Das Startdatum wird in B2, das Zieldatum in B10 eingetragen, Tage und Monate wahlweise ein- oder zweistellig, Jahre nach Belieben, jeweils getrennt durch Punkte und ohne Leerzeichen. Kleiner Hinweis: Auf automatische Überprüfung der korrekten Eingabe habe ich verzichtet.
Im 1. Schritt wird das Startdatum in Tage, Monate und Jahre zerlegt.
Eintrag D2: =wert(teil(B2;1;finden(".";B2)-1))
Eintrag E2: =wert(teil(B2;finden(".";B2)+1;finden(".";B2;finden(".";B2)+1)-finden(".";B2)-1))
Eintrag F2: =wert(teil(B2;finden(".";B2;finden(".";B2)+1)+1)6))
Im 2. Schritt wird das Zieldatum ebenfalls zerlegt.
Eintrag D10: =wert(teil(B10;1;finden(".";B10)-1))
Eintrag E10: =wert(teil(B10;finden(".";B10)+1;finden(".";B10;finden(".";B10)+1)-finden(".";B10)-1))
Eintrag F10: =wert(teil(B10;finden(".";B10;finden(".";B10)+1)+1)6))
Im 3. Schritt wird so viele ganze Jahre weitergegangen, dass das Zieldatum gerade nicht überschritten wird. Tag und Monat des Startdatums bleiben.
Eintrag D4: =D2
Eintrag E4: =E2
Eintrag F4: =wenn(oder(E4<E10;und(E4=E10;D4<=D10));F10;F10-1)
Im 4. Schritt wird so viele ganze Monate weitergegangen, dass das Zieldatum gerade nicht überschritten wird. Tag des Startdatums bleibt.
Eintrag D6: =D4
Eintrag E6: =wenn(D6<=D10;E10;wenn(E10>1;E10-1;12))
Eintrag F6: =wenn(E6=12;F4;F10)
Im 5. Schritt wird die bisherige Berechnung des Tages korrigiert, z.B. bei 31. April oder 30. Februar, unter Berücksichtigung von Schaltjahren seit Einführung des Gregorianischen Kalenders im Jahre 1582.
Eintrag D8: =wenn(und(D6=31;oder(E6=4;E6=6;E6=9;E6=11));30;wenn(und(D6>28;F6<1582);28;wenn(und(D6>28;rest(F6;400)=0);29;wenn(und(D6>28;rest(F6;100)=0);28;wenn(und(D6>28;rest(F6;4)=0);29;D6)))))
Eintrag E8: =E6
Eintrag F8: =F6
Im 6. Schritt nun endlich die Berechnung der Tage, Monate und Jahre. Erstaunlicherweise funktioniert sogar die Datum-Funktion in allen Fällen.
Eintrag H3: =F4-F2
Eintrag H7: =wenn(F4=F6;E6-E4;E6-E4+12)
Eintrag H9: =datum(F10;E10;D10)-datum(F8;E8;D8)
Noch etwas für die schönere Fassade:
Eintrag I3: =wenn(H3=1;"Jahr";"Jahre")
Eintrag I7: =wenn(H7=1;"Monat";"Monate")
Eintrag I9: =wenn(H9=1;"Tag";"Tage")
Als letztes die Zeilen 5 und 6 ausblenden (nicht löschen!!!) und ein paar Pfeile zeichnen:
- von F2 und F4 nach H3
- von F4 und F8 nach H7
- von F8 und F10 nach H9
Getestet und funktionsfähig, viel Spaß beim Ausprobieren. Übrigens: Wer keine Lust zum Tippen hat, kann bei mir die fertige Tabelle bekommen.
Gruß peko
Das genaue Alter der Ur-Ur-...-Oma lässt sich schon berechnen, auch ohne Visual Basic. Die Aufgabe lautet eigentlich, die Differenz in Jahren, Monaten und Tagen zweier beliebiger Daten zu berechnen. Die Grundidee ist, sich schrittweise vom Startdatum aus in ganzen Jahren, ganzen Monaten und schließlich Tagen dem Zieldatum anzunähern. Da EXCEL nur Datumsangaben ab dem 1.1.1900 zulässt, müssen Start- und Zieldatum anders eingegeben werden. Also los:
Die Zellen B2 und B10 werden (vor der Eingabe!) als Textzellen formatiert. Das Startdatum wird in B2, das Zieldatum in B10 eingetragen, Tage und Monate wahlweise ein- oder zweistellig, Jahre nach Belieben, jeweils getrennt durch Punkte und ohne Leerzeichen. Kleiner Hinweis: Auf automatische Überprüfung der korrekten Eingabe habe ich verzichtet.
Im 1. Schritt wird das Startdatum in Tage, Monate und Jahre zerlegt.
Eintrag D2: =wert(teil(B2;1;finden(".";B2)-1))
Eintrag E2: =wert(teil(B2;finden(".";B2)+1;finden(".";B2;finden(".";B2)+1)-finden(".";B2)-1))
Eintrag F2: =wert(teil(B2;finden(".";B2;finden(".";B2)+1)+1)6))
Im 2. Schritt wird das Zieldatum ebenfalls zerlegt.
Eintrag D10: =wert(teil(B10;1;finden(".";B10)-1))
Eintrag E10: =wert(teil(B10;finden(".";B10)+1;finden(".";B10;finden(".";B10)+1)-finden(".";B10)-1))
Eintrag F10: =wert(teil(B10;finden(".";B10;finden(".";B10)+1)+1)6))
Im 3. Schritt wird so viele ganze Jahre weitergegangen, dass das Zieldatum gerade nicht überschritten wird. Tag und Monat des Startdatums bleiben.
Eintrag D4: =D2
Eintrag E4: =E2
Eintrag F4: =wenn(oder(E4<E10;und(E4=E10;D4<=D10));F10;F10-1)
Im 4. Schritt wird so viele ganze Monate weitergegangen, dass das Zieldatum gerade nicht überschritten wird. Tag des Startdatums bleibt.
Eintrag D6: =D4
Eintrag E6: =wenn(D6<=D10;E10;wenn(E10>1;E10-1;12))
Eintrag F6: =wenn(E6=12;F4;F10)
Im 5. Schritt wird die bisherige Berechnung des Tages korrigiert, z.B. bei 31. April oder 30. Februar, unter Berücksichtigung von Schaltjahren seit Einführung des Gregorianischen Kalenders im Jahre 1582.
Eintrag D8: =wenn(und(D6=31;oder(E6=4;E6=6;E6=9;E6=11));30;wenn(und(D6>28;F6<1582);28;wenn(und(D6>28;rest(F6;400)=0);29;wenn(und(D6>28;rest(F6;100)=0);28;wenn(und(D6>28;rest(F6;4)=0);29;D6)))))
Eintrag E8: =E6
Eintrag F8: =F6
Im 6. Schritt nun endlich die Berechnung der Tage, Monate und Jahre. Erstaunlicherweise funktioniert sogar die Datum-Funktion in allen Fällen.
Eintrag H3: =F4-F2
Eintrag H7: =wenn(F4=F6;E6-E4;E6-E4+12)
Eintrag H9: =datum(F10;E10;D10)-datum(F8;E8;D8)
Noch etwas für die schönere Fassade:
Eintrag I3: =wenn(H3=1;"Jahr";"Jahre")
Eintrag I7: =wenn(H7=1;"Monat";"Monate")
Eintrag I9: =wenn(H9=1;"Tag";"Tage")
Als letztes die Zeilen 5 und 6 ausblenden (nicht löschen!!!) und ein paar Pfeile zeichnen:
- von F2 und F4 nach H3
- von F4 und F8 nach H7
- von F8 und F10 nach H9
Getestet und funktionsfähig, viel Spaß beim Ausprobieren. Übrigens: Wer keine Lust zum Tippen hat, kann bei mir die fertige Tabelle bekommen.
Gruß peko
Antwort 34 von peko
Hi ihr alle:
Nachtrag zu Antwort 33:
Habe leider versäumt, in D8 den Februar und das Stichjahr für den Beginn des Gregorianischen Kalenders (1582) abzufragen. Deshalb folgende Änderungen/Ergänzungen.
Eintrag D8: =wenn(und(D6=31;oder(E6=4;E6=6;E6=9;E6=11));30;wenn(und(D6>28;E6=2;F6<1582;rest(F6;4)=0);29;wenn(und(D6>28;E6=2;F6<1582;rest(F6;4)<>0);28;wenn(und(D6>28;E6=2;rest((F6;400)=0);29;wenn(und(D6>28;E6=2;rest(F6;100)=0);28;wenn(und(D6>28;E6=2;rest(F6;4)=0);29;D6))))))
Eintrag H9: =wenn(D8=D10;0;wenn(oder(und(D8=28;E8=2);und(D8=29;E8=2));D10;datum(F10;E10;D10)-datum(F8;E8;D8)))
Kleiner Hinweis nebenbei:
Der Julianische Kalender galt von 45 v. Chr. bis 1582 n. Chr. und sah alle 4 Jahre ein Schaltjahr vor. In den Jahren 45 v. Chr. bis 9 v. Chr. wurde allerdings jedes 3. Jahr zum Schaltjahr erklärt, dafür gab es von 9 v. Chr. bis 8 n. Chr. überhaupt kein Schaltjahr. Diese Feinheiten sind in meiner Tabelle nicht berücksichtigt, wohl aber die Regelung vor 1582 des Julianischen Kalenders (alle 4 Jahre ein Schaltjahr).
Zum Schaltjahr des Gregorianischen Kalenders (ab 1582) allgemein:
Jedes durch 4 teilbare Jahr ist ein Schaltjahr, ausgenommen die durch 100 teilbaren Jahre, die durch 400 teilbaren Jahre aber doch.
Es gibt inzwischen Überlegungen unter Wissenschaftlern, zum Ausgleich der Ungenauigkeiten unseres Kalenders zum tatsächlichen Ablauf des Erdenjahres den Schalttag im Jahre 3200 oder 3600 ausfallen zu lassen.
Trage deshalb vorsichtshalber keine Verabredung in deinen Terminkalender für den 29.2.3200 oder 29.2.3600 ein!!!
Anmerkung: Wer meine Tabelle anfordert, erhält natürlich die neueste Fassung. Für Hinweise auf mögliche Fehler wäre ich sehr dankbar.
Gruß peko
Nachtrag zu Antwort 33:
Habe leider versäumt, in D8 den Februar und das Stichjahr für den Beginn des Gregorianischen Kalenders (1582) abzufragen. Deshalb folgende Änderungen/Ergänzungen.
Eintrag D8: =wenn(und(D6=31;oder(E6=4;E6=6;E6=9;E6=11));30;wenn(und(D6>28;E6=2;F6<1582;rest(F6;4)=0);29;wenn(und(D6>28;E6=2;F6<1582;rest(F6;4)<>0);28;wenn(und(D6>28;E6=2;rest((F6;400)=0);29;wenn(und(D6>28;E6=2;rest(F6;100)=0);28;wenn(und(D6>28;E6=2;rest(F6;4)=0);29;D6))))))
Eintrag H9: =wenn(D8=D10;0;wenn(oder(und(D8=28;E8=2);und(D8=29;E8=2));D10;datum(F10;E10;D10)-datum(F8;E8;D8)))
Kleiner Hinweis nebenbei:
Der Julianische Kalender galt von 45 v. Chr. bis 1582 n. Chr. und sah alle 4 Jahre ein Schaltjahr vor. In den Jahren 45 v. Chr. bis 9 v. Chr. wurde allerdings jedes 3. Jahr zum Schaltjahr erklärt, dafür gab es von 9 v. Chr. bis 8 n. Chr. überhaupt kein Schaltjahr. Diese Feinheiten sind in meiner Tabelle nicht berücksichtigt, wohl aber die Regelung vor 1582 des Julianischen Kalenders (alle 4 Jahre ein Schaltjahr).
Zum Schaltjahr des Gregorianischen Kalenders (ab 1582) allgemein:
Jedes durch 4 teilbare Jahr ist ein Schaltjahr, ausgenommen die durch 100 teilbaren Jahre, die durch 400 teilbaren Jahre aber doch.
Es gibt inzwischen Überlegungen unter Wissenschaftlern, zum Ausgleich der Ungenauigkeiten unseres Kalenders zum tatsächlichen Ablauf des Erdenjahres den Schalttag im Jahre 3200 oder 3600 ausfallen zu lassen.
Trage deshalb vorsichtshalber keine Verabredung in deinen Terminkalender für den 29.2.3200 oder 29.2.3600 ein!!!
Anmerkung: Wer meine Tabelle anfordert, erhält natürlich die neueste Fassung. Für Hinweise auf mögliche Fehler wäre ich sehr dankbar.
Gruß peko
Antwort 35 von peko
Hi ihr!
Verflixte Schaltjahre, deshalb noch ein Nachtrag zum Nachtrag!
Eintrag in Zelle H9 muss lauten:
=wenn(D8=D10);0;wenn(und(E8=2;E10=3;F8<1582;rest(F8;4)=0);D10-D8+29;wenn(und(E8=2;E10=3;rest(F8;400)=0);D10-D8+29;wenn(und(E8=2;E10=3;rest(F8;100)=0);D10-D8+28;wenn(und(E8=2;E10=3;rest(F8;4)=0);D10-D8+29;datum(F10;E10;D10)-datum(F8;E8;D8))))))
So, das war´s hoffentlich wirklich.
Gruß peko
Verflixte Schaltjahre, deshalb noch ein Nachtrag zum Nachtrag!
Eintrag in Zelle H9 muss lauten:
=wenn(D8=D10);0;wenn(und(E8=2;E10=3;F8<1582;rest(F8;4)=0);D10-D8+29;wenn(und(E8=2;E10=3;rest(F8;400)=0);D10-D8+29;wenn(und(E8=2;E10=3;rest(F8;100)=0);D10-D8+28;wenn(und(E8=2;E10=3;rest(F8;4)=0);D10-D8+29;datum(F10;E10;D10)-datum(F8;E8;D8))))))
So, das war´s hoffentlich wirklich.
Gruß peko
Antwort 36 von peko
Hi nochmal.
Das war´s leider immer noch nicht. Habe noch einen Fehler entdeckt.
In Zelle D8 ist (ziemlich am Ende) zwischen
..... rest(F6;4)=0;29;
und
D6))))))
einzufügen:
wenn(und(D6>28;E6=2);28;
Am Ende muss dann noch eine weitere Klammer (die siebente) hinzugefügt werden.
Trotz einiger Stolperer, alles in allem hat es Spaß gemacht!
peko
Das war´s leider immer noch nicht. Habe noch einen Fehler entdeckt.
In Zelle D8 ist (ziemlich am Ende) zwischen
..... rest(F6;4)=0;29;
und
D6))))))
einzufügen:
wenn(und(D6>28;E6=2);28;
Am Ende muss dann noch eine weitere Klammer (die siebente) hinzugefügt werden.
Trotz einiger Stolperer, alles in allem hat es Spaß gemacht!
peko
Antwort 37 von peko
@ nighty
Danke für deine und knubbel´s Tabellen. Deine eigene Aufgabenstellung und dein Lösungsansatz sind sicher etwas anders ausgerichtet als bei knubbel und mir (Zufall!). Aber deine Makros zur Wochentagsberechnung finde ich echt gut. Schade nur, dass sie sich auf die Jahre 2000 bis 2039 beschränken. Vielleicht schaffst du noch mehr?
Meine (bisher letzte) Tabelle hast du ja erhalten.
@ knubbel
Danke auch für deine Tabelle, die nighty mir zugemailt hat. Meine Tabelle ist unterwegs zu dir.
Danke auch, dass du den Blattschutz nicht mit einem Passwort versehen hast, so dass der Aufbau deiner Tabelle auch nachvollziehbar wird, wenn man die entsprechenden Zeilen und Spalten einblendet. Habe ich übrigens auch so gemacht.
Eindrucksvoll gelöst finde ich von dir die Berechnung des Alters in Tagen in den Zellen C17 bis D21. Ergänzt werden könnten vielleicht deine Berechnungen durch Berücksichtigung des Wechsels vom Julianischen zum Gregorianischen Kalender im Jahre 1582, denn für Datumsangaben vor 1582 ist deine Tabelle leider etwas fehlerhaft. Richtig gut finde ich wiederum die Bestimmung des Wochentages auf der Basis des berechneten Alters in Tagen. Die Vorschrift für die Eingabe des Startdatums und dass kein beliebiges Zieldatum gewählt werden kann, finde ich wieder nicht so ganz glücklich. Dafür überzeugt mich die Überprüfung der korrekten Eingabe.
Kleiner Tipp: REST(a;b) leistet das Gleiche wie a/b - GANZZAHL(a/b) (Zellen C17 und D17 bei dir)
Vielleicht sollten wir uns mal zusammentun? Wenn du nichts dagegen hast, würde ich gern deine Ideen in meine Tabelle zwecks Erweiterung übernehmen, umgekehrt ist es natürlich auch in Ordnung.
@ alle Kalenderspezialisten (und alle, die es werden wollen)
Ich schreibe das extra hier und nicht in einer mail an nighty oder knubbel, um noch mehr Leute für die Aufgabenstellung zu interessieren. Es lohnt sich, man kann dabei jede Menge über Programmierung oder Formeln in EXCEL lernen.
Und es macht richtig Spaß!!!
Grüße euch alle!
peko
Danke für deine und knubbel´s Tabellen. Deine eigene Aufgabenstellung und dein Lösungsansatz sind sicher etwas anders ausgerichtet als bei knubbel und mir (Zufall!). Aber deine Makros zur Wochentagsberechnung finde ich echt gut. Schade nur, dass sie sich auf die Jahre 2000 bis 2039 beschränken. Vielleicht schaffst du noch mehr?
Meine (bisher letzte) Tabelle hast du ja erhalten.
@ knubbel
Danke auch für deine Tabelle, die nighty mir zugemailt hat. Meine Tabelle ist unterwegs zu dir.
Danke auch, dass du den Blattschutz nicht mit einem Passwort versehen hast, so dass der Aufbau deiner Tabelle auch nachvollziehbar wird, wenn man die entsprechenden Zeilen und Spalten einblendet. Habe ich übrigens auch so gemacht.
Eindrucksvoll gelöst finde ich von dir die Berechnung des Alters in Tagen in den Zellen C17 bis D21. Ergänzt werden könnten vielleicht deine Berechnungen durch Berücksichtigung des Wechsels vom Julianischen zum Gregorianischen Kalender im Jahre 1582, denn für Datumsangaben vor 1582 ist deine Tabelle leider etwas fehlerhaft. Richtig gut finde ich wiederum die Bestimmung des Wochentages auf der Basis des berechneten Alters in Tagen. Die Vorschrift für die Eingabe des Startdatums und dass kein beliebiges Zieldatum gewählt werden kann, finde ich wieder nicht so ganz glücklich. Dafür überzeugt mich die Überprüfung der korrekten Eingabe.
Kleiner Tipp: REST(a;b) leistet das Gleiche wie a/b - GANZZAHL(a/b) (Zellen C17 und D17 bei dir)
Vielleicht sollten wir uns mal zusammentun? Wenn du nichts dagegen hast, würde ich gern deine Ideen in meine Tabelle zwecks Erweiterung übernehmen, umgekehrt ist es natürlich auch in Ordnung.
@ alle Kalenderspezialisten (und alle, die es werden wollen)
Ich schreibe das extra hier und nicht in einer mail an nighty oder knubbel, um noch mehr Leute für die Aufgabenstellung zu interessieren. Es lohnt sich, man kann dabei jede Menge über Programmierung oder Formeln in EXCEL lernen.
Und es macht richtig Spaß!!!
Grüße euch alle!
peko
Antwort 38 von Knubbel
@ peko
Danke auch Dir für die Tabelle.
Du hast es richtig erkann, die Lösungsansätze zum Kalenderproblem sind bei Dir, nighty und mir unterschiedlich.
Ich habe meinen Kalender bewust nur auf den Gültigkeitszeitraum "Gregorianischer Kalender" begrenzt, da hier eine Kontrolle der Funktionsweise eindeutig möglich ist. Die von Dir kritisierte frei Wahl des Zieldatums (ich habe den Bezug auf das aktuelle Systemdatum gewählt) lässt sich leicht ändern, in dem Du die Eingabe- und Berechnungszellen aus Spalte C nach D kopierst.
Selbstverständlich kannst Du meinen Algorihmus (oder Teile davon) verwenden oder ausbauen. Ich erhebe keinen Anspruch auf Urheberrechte (Der Basisalgorihmus stammt auch nicht von mir).
Nun ein paar Anmerkungen zu Deinem Kalender:
- Sicherlich ist es schön, über einen allumfassenden (ewigen) Kalender zu verfügen. Allerdings muss er aber auch Ausnahmeregeln (Julianischer Kalender, Übergang Julianischer/Gregorianischer Kalender) fehlerfrei berücksichtigen.
- Dein Kalender hat einen gravierenden Fehler beim Kalenderwechsel: Es folge auf den Donnerstag, 4.10.1582 (julianisch) sofort der Freitag, 15.10.1582 (gregorianisch). Das hast Du nicht berücksichtigt.
- Du solltest Deine Datumseingabe dahingehend überprüfen, ob das Datum auch existiert (z.B. 29.02.2001 ist ein ungültiges Datum)
Ich gebe Dir absolut Recht: Die Aufgabenstellung "ewiger Kalender in Excel" ist hoch interessant und sehr lehrreich (auch noch für die s.g. Kalenderspezialisten)
mfg Knubbel
Danke auch Dir für die Tabelle.
Du hast es richtig erkann, die Lösungsansätze zum Kalenderproblem sind bei Dir, nighty und mir unterschiedlich.
Ich habe meinen Kalender bewust nur auf den Gültigkeitszeitraum "Gregorianischer Kalender" begrenzt, da hier eine Kontrolle der Funktionsweise eindeutig möglich ist. Die von Dir kritisierte frei Wahl des Zieldatums (ich habe den Bezug auf das aktuelle Systemdatum gewählt) lässt sich leicht ändern, in dem Du die Eingabe- und Berechnungszellen aus Spalte C nach D kopierst.
Selbstverständlich kannst Du meinen Algorihmus (oder Teile davon) verwenden oder ausbauen. Ich erhebe keinen Anspruch auf Urheberrechte (Der Basisalgorihmus stammt auch nicht von mir).
Nun ein paar Anmerkungen zu Deinem Kalender:
- Sicherlich ist es schön, über einen allumfassenden (ewigen) Kalender zu verfügen. Allerdings muss er aber auch Ausnahmeregeln (Julianischer Kalender, Übergang Julianischer/Gregorianischer Kalender) fehlerfrei berücksichtigen.
- Dein Kalender hat einen gravierenden Fehler beim Kalenderwechsel: Es folge auf den Donnerstag, 4.10.1582 (julianisch) sofort der Freitag, 15.10.1582 (gregorianisch). Das hast Du nicht berücksichtigt.
- Du solltest Deine Datumseingabe dahingehend überprüfen, ob das Datum auch existiert (z.B. 29.02.2001 ist ein ungültiges Datum)
Ich gebe Dir absolut Recht: Die Aufgabenstellung "ewiger Kalender in Excel" ist hoch interessant und sehr lehrreich (auch noch für die s.g. Kalenderspezialisten)
mfg Knubbel
Antwort 39 von peko
@ knubbel
Danke für den Zeitungsausschnitt. Auch danke für deinen Hinweis auf den Fehler beim Kalenderwechsel. Hatte ich inzwischen schon durch Suche im Internet festgestellt.
Ich werde daran arbeiten, dies in den Berechnungen zu berücksichtigen, und auch die Überprüfung auf gültige Daten nach der Eingabe von Start- und Zieldatum liegt mir mittlerweile am Herzen.
Kann aber alles noch etwas dauern.
Übrigens: unter www.salesianer.de/util/kalfaq.html findest du weitere interessante Informationen zum Kalender und entsprechenden Algorithmen.
Gruß peko
Danke für den Zeitungsausschnitt. Auch danke für deinen Hinweis auf den Fehler beim Kalenderwechsel. Hatte ich inzwischen schon durch Suche im Internet festgestellt.
Ich werde daran arbeiten, dies in den Berechnungen zu berücksichtigen, und auch die Überprüfung auf gültige Daten nach der Eingabe von Start- und Zieldatum liegt mir mittlerweile am Herzen.
Kann aber alles noch etwas dauern.
Übrigens: unter www.salesianer.de/util/kalfaq.html findest du weitere interessante Informationen zum Kalender und entsprechenden Algorithmen.
Gruß peko
Antwort 40 von nighty
hi alle
gefaellt mir wirklich gut die diskussionrunde angeregt von @poorfirele!!!
@peko
was hast du denn schoenes mit kalendern gemacht fuer basic ? exel vb? mail sie mir bitte.bin nicht neugierig(ich koennt ja sagen nur frauen sind neugierig,hab ich aber nicht) sondern wissensdurstig.
gruss nighty
gefaellt mir wirklich gut die diskussionrunde angeregt von @poorfirele!!!
@peko
was hast du denn schoenes mit kalendern gemacht fuer basic ? exel vb? mail sie mir bitte.bin nicht neugierig(ich koennt ja sagen nur frauen sind neugierig,hab ich aber nicht) sondern wissensdurstig.
gruss nighty
Antwort 41 von peko
@ nighty
Bisher (also bis vor etwa 2 Wochen), als unsere Diskussionsrunde begann, habe ich nichts in Richtung Kalender gemacht, weder in BASIC noch in VisualBasic. Jetzt habe ich allerdings den Ehrgeiz, einen allgemeingültigen Kalender in Excel (auch wenn der vielleicht von anderen schon realisiert wurde) zu erstellen .
Alles, was ich bisher gemacht habe, habe ich dir bereits zugemailt; vor 2 Wochen habe ich noch keinen Gedanken an den Kalender verschwendet, aber jetzt interessiert mich das Problem ungemein!
Ich arbeite weiter am "ewigen" Kalender.
Gruß an dich nighty!
@ alle
Macht denn sonst keiner mehr mit?
peko
Bisher (also bis vor etwa 2 Wochen), als unsere Diskussionsrunde begann, habe ich nichts in Richtung Kalender gemacht, weder in BASIC noch in VisualBasic. Jetzt habe ich allerdings den Ehrgeiz, einen allgemeingültigen Kalender in Excel (auch wenn der vielleicht von anderen schon realisiert wurde) zu erstellen .
Alles, was ich bisher gemacht habe, habe ich dir bereits zugemailt; vor 2 Wochen habe ich noch keinen Gedanken an den Kalender verschwendet, aber jetzt interessiert mich das Problem ungemein!
Ich arbeite weiter am "ewigen" Kalender.
Gruß an dich nighty!
@ alle
Macht denn sonst keiner mehr mit?
peko
Antwort 42 von peko
@ alle immer noch Interessierten!
Auch wenn ihr vorläufig nichts mehr von mir hört (Urlaub), werde ich weiter an einem fehlerfreien "ewigen Kalender" arbeiten. Würde mich freuen, wenn einige weiter mitmachen würden.
Gruß peko
Auch wenn ihr vorläufig nichts mehr von mir hört (Urlaub), werde ich weiter an einem fehlerfreien "ewigen Kalender" arbeiten. Würde mich freuen, wenn einige weiter mitmachen würden.
Gruß peko
Antwort 43 von grisu20
Hallo allerseits falls es noch jemandem interessiert ich habe auch eine Lösung
Zelle C1 ist Geburtstsg formatiert mit Datum zum Bsp. 14.Apr.98
Zelle D1 ist Formel
=WENN(C1="";"";DATEDIF(C1;HEUTE();"y"))
formatiert mit Benutzerdefiniert
0 "Jahre"
Zelle E1 ist Formel
=WENN(C1="";"";DATEDIF(C1;HEUTE();"YM"))
formatiert mit Benutzerdefiniert
0 "Monate"
Zelle F1 ist Formel
=WENN(C1="";"";DATEDIF(C1;HEUTE();"MD"))
formatiert mit Benutzerdefiniert
0 "Tage"
Ich hoffe denjenigen, die das noch lesen gedient zu haben.
bei diesen Formeln gibt es keinen Eintrag, wenn in Zelle C1 kein geb. Datum eingetragen wird.
noch viel vergnügen beim ausprobieren
wünscht euch
Grisu
Zelle C1 ist Geburtstsg formatiert mit Datum zum Bsp. 14.Apr.98
Zelle D1 ist Formel
=WENN(C1="";"";DATEDIF(C1;HEUTE();"y"))
formatiert mit Benutzerdefiniert
0 "Jahre"
Zelle E1 ist Formel
=WENN(C1="";"";DATEDIF(C1;HEUTE();"YM"))
formatiert mit Benutzerdefiniert
0 "Monate"
Zelle F1 ist Formel
=WENN(C1="";"";DATEDIF(C1;HEUTE();"MD"))
formatiert mit Benutzerdefiniert
0 "Tage"
Ich hoffe denjenigen, die das noch lesen gedient zu haben.
bei diesen Formeln gibt es keinen Eintrag, wenn in Zelle C1 kein geb. Datum eingetragen wird.
noch viel vergnügen beim ausprobieren
wünscht euch
Grisu
Antwort 44 von nighty
hi alle
@grisu20
meine oma ist 1,1,1899 geboren da wird deine formel wohl versagen daher dieser geniale thread urspruenglich mit einer anderen frage von poorfirele ins leben gerufen,es waren auch schoene loesungen per email staendig unterwegs die du leider nicht verfolgen konntest.
zu spaetttttt.
gruss nighty
@grisu20
meine oma ist 1,1,1899 geboren da wird deine formel wohl versagen daher dieser geniale thread urspruenglich mit einer anderen frage von poorfirele ins leben gerufen,es waren auch schoene loesungen per email staendig unterwegs die du leider nicht verfolgen konntest.
zu spaetttttt.
gruss nighty
Antwort 45 von Knubbel
@all
Ich finde es gut, dass auch nach solch langer Zeit noch jemand in die Diskussionsrunde hinein schaut. Auch wenn Vorschläge kommen, die, wie z.B. bei Grisu, den Kern des Problems verfehlen, bleibt das Thema nach wie vor hoch interessant.
Ich bin auf weitere Beiträge gespannt.
mfg Knubbel
Ich finde es gut, dass auch nach solch langer Zeit noch jemand in die Diskussionsrunde hinein schaut. Auch wenn Vorschläge kommen, die, wie z.B. bei Grisu, den Kern des Problems verfehlen, bleibt das Thema nach wie vor hoch interessant.
Ich bin auf weitere Beiträge gespannt.
mfg Knubbel
Antwort 46 von struppi
Sinnlose Kommentare und verfehlen weit mehr das Thema..
Antwort 47 von Knubbel
@Grisu
Deine Formeln treffen sicher die Lösung auf die Anfrage von poorfirele.
Aber in AW 14 hat nighty die Anfrage erweitert auf die Gültigkeit des gregorianischen Kalenders. Dies sprengt, wie Du sicher weist, die Funktionalität von MS (ich habe in AW 23 darauf hingewiesen).
Mit meiner AW 45 wollte ich Dich auch nicht kritisieren, sondern viel mehr für weitere Beiträge zu diesem Problem werben.
@struppi
Du solltest Dir den Spruch mal selbst verinnerlichen:
mfg Knubbel
Deine Formeln treffen sicher die Lösung auf die Anfrage von poorfirele.
Aber in AW 14 hat nighty die Anfrage erweitert auf die Gültigkeit des gregorianischen Kalenders. Dies sprengt, wie Du sicher weist, die Funktionalität von MS (ich habe in AW 23 darauf hingewiesen).
Mit meiner AW 45 wollte ich Dich auch nicht kritisieren, sondern viel mehr für weitere Beiträge zu diesem Problem werben.
@struppi
Du solltest Dir den Spruch mal selbst verinnerlichen:
Zitat:
Sinnlose Kommentare und verfehlen weit mehr das Thema..
Sinnlose Kommentare und verfehlen weit mehr das Thema..
mfg Knubbel

