Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1372to1376
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Datumsberechnung vor 1900

Datumsberechnung vor 1900
24.07.2014 13:20:37
Ewald
Hallo,
eine UDF soll alle Datums- und Zeitdifferenzen eines Zeitraum wiedergeben.Dies ist für Datümer ab 1900 auch kein Problem.
Jetzt soll das aber auch schon ab dem Jahr 0 möglich sein.
Rechnet Excel richtig wenn zu dem Jahr einfach 2000 dazuaddiert wird.
Ist darüber schon etwas bekannt.
Gruß Ewald

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datumsberechnung vor 1900
24.07.2014 13:26:32
Hajo_Zi
Hallo Ewald,
Excelformeln.de
Gruß Hajo

AW: Datumsberechnung vor 1900
24.07.2014 14:50:02
Wilfried
Hallo!
Hilft dir das weiter?
Tabelle1

 ABCDE
19Datum kleinerDatum grösserJahrMonatTag
2015.04.124615.04.1248200
2105.07.186629.10.2013147324
2205.07.110019.07.1766666014
2307.07.189909.07.1901202

Formeln der Tabelle
ZelleFormel
C20=WENN(($A20="")+($B20=""); "";DATEDIF(WENN(ISTZAHL($A20); (WENN(LÄNGE($A20)=4;"1.1.";0)&$A20+($A20<1900)*800)*1;WECHSELN($A20;TEIL($A20;SUCHEN("#";WECHSELN($A20;".";"#";2))+1;99); TEIL($A20;SUCHEN("#";WECHSELN($A20;".";"#";2))+1;99)+800)); WENN(ISTZAHL($B20); WENN(ISTZAHL($A20); (WENN(LÄNGE($B20)=4;"1.1.";0)&$B20+($B20<1900)*800)*1;TEXT($B20;"TT.MM.")&JAHR($B20)+800); WECHSELN($B20;TEIL($B20;SUCHEN("#";WECHSELN($B20;".";"#";2))+1;99); TEIL($B20;SUCHEN("#";WECHSELN($B20;".";"#";2))+1;99)+800)); "Y"))
D20=WENN(($A20="")+($B20=""); "";DATEDIF(WENN(ISTZAHL($A20); (WENN(LÄNGE($A20)=4;"1.1.";0)&$A20+($A20<1900)*800)*1;WECHSELN($A20;TEIL($A20;SUCHEN("#";WECHSELN($A20;".";"#";2))+1;99); TEIL($A20;SUCHEN("#";WECHSELN($A20;".";"#";2))+1;99)+800)); WENN(ISTZAHL($B20); WENN(ISTZAHL($A20); (WENN(LÄNGE($B20)=4;"1.1.";0)&$B20+($B20<1900)*800)*1;TEXT($B20;"TT.MM.")&JAHR($B20)+800); WECHSELN($B20;TEIL($B20;SUCHEN("#";WECHSELN($B20;".";"#";2))+1;99); TEIL($B20;SUCHEN("#";WECHSELN($B20;".";"#";2))+1;99)+800)); "YM"))
E20=WENN(($A20="")+($B20=""); "";DATEDIF(WENN(ISTZAHL($A20); (WENN(LÄNGE($A20)=4;"1.1.";0)&$A20+($A20<1900)*800)*1;WECHSELN($A20;TEIL($A20;SUCHEN("#";WECHSELN($A20;".";"#";2))+1;99); TEIL($A20;SUCHEN("#";WECHSELN($A20;".";"#";2))+1;99)+800)); WENN(ISTZAHL($B20); WENN(ISTZAHL($A20); (WENN(LÄNGE($B20)=4;"1.1.";0)&$B20+($B20<1900)*800)*1;TEXT($B20;"TT.MM.")&JAHR($B20)+800); WECHSELN($B20;TEIL($B20;SUCHEN("#";WECHSELN($B20;".";"#";2))+1;99); TEIL($B20;SUCHEN("#";WECHSELN($B20;".";"#";2))+1;99)+800)); "MD"))


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Gruß
Wilfried

Anzeige
AW: Datumsberechnung vor 1900
24.07.2014 15:56:01
Ewald
Hallo,
mir war auch bekannt das es einen Zyklus gibt von 400 Jahren der die gleiche Berechnung ergeben soll, nur wie sieht es mit dem Vielfachen davon aus.
Auf Excelformeln.de konnte ich erkennen das sie 4000 Jahre dazu addieren, Wilfried hat 800 Jahre.
Wenn ich vom Jahr 0000 anfangen will, wäre 2000 Jahre die kleinste Aufsummierung um in den Rechenbereich zu kommen. 4000 erscheint mir ziemlich hoch und mit 800 reicht es nicht.
Nur finde ich nirgendwo ob ein beliebiges Vielfaches von 400 richtig rechnet.
die Funktion die richtig rechnet, habe ich ja schon, es geht jetzt nur darum Datümer die vor 1900 liegen in die richtige Form zu bringen.
Gruß Ewald

Anzeige
Mit VBA kommst du bis zum Jahr 100 zurück ...
24.07.2014 20:24:38
Luc:-?
…und bis zum Jahr 9999, Ewald;
soll's mehr sein, ist wohl 4000 der richtige Summand bzw Subtrahend (hatte ich wahrscheinl auch mal verwendet).
Gruß, Luc :-?
Besser informiert mit …

AW: Mit VBA kommst du bis zum Jahr 100 zurück ...
24.07.2014 23:26:37
Ewald
Hallo Luc,
das paßt aber nur bei reinen Datümern,
willst du altes Datum bis Jetzt() berechnen sind die Tage falsch und die Angaben von Stunden und Minuten reiner Unsinn.
Muß jetzt nur mal sehen wie ich Jetzt()um 2000 Jahre erhöhen kann ohne aufzubröseln.
Gruß Ewald

Anzeige
Wenn ich mich recht erinnere, sind mit VBA ...
25.07.2014 02:51:58
Luc:-?
…die Tage richtig, Ewald,
allerdings ohne Berücksichtigung der Gregoriani­schen Kalender­reform. Foglich passen ältere Original­daten nur zu unserem jetzigen Kalender und lassen nur so keine exakte WoTagsbestimmung zu. Vor der Juliani­schen Kalender­reform und für andere Kalender ist so etwas ohnehin irrelevant bis illusorisch. Solche Daten sollten aber schon umgerechnet vorliegen. Die Bestimmung des Urknall­Datums bleibt aber ohnehin rein akademisch, weil keiner weiß, ob die Zeit immer und überall gleich schnell verlief bzw verläuft und die Bezugssysteme anders waren bzw sich in Zukunft ändern könnten bzw wdn. Ansonsten könnte man so vom Urknall bis zum Ende des Universums rechnen. Allerdings wirken sich bei so langen Zeiträumen auch Schaltsekunden irgendwann aus. Aber wer braucht das schon… ;-)
Allerdings reichen 2000 Jahre für die Interpolation mE wohl eher nicht. Ggf muss diese Erhöhung aber erst am Ende des 1.Zyklus erfolgen. Nur auf JETZT() bezogen reicht evtl nicht. Aber das müsste ich erstmal im Abyss meiner HDs finden.
Luc :-?

Anzeige
AW: Mit VBA kommst du bis zum Jahr 100 zurück ...
25.07.2014 11:22:35
Wilfried
Hallo!
Wenn du mit Jahr 0000 anfängst dann so.
Tabelle1

 ABCDE
19Datum kleinerDatum grösserJahrMonatTag
2015.04.000015.04.1248124800
2105.07.186629.10.2013147324
2205.07.110019.07.1766666014
2307.07.189909.07.1901202

Formeln der Tabelle
ZelleFormel
C20=WENN(($A20="")+($B20=""); "";DATEDIF(WENN(ISTZAHL($A20); (WENN(LÄNGE($A20)=4;"1.1.";0)&$A20+($A20<1900)*1900)*1;WECHSELN($A20;TEIL($A20;SUCHEN("#";WECHSELN($A20;".";"#";2))+1;99); TEIL($A20;SUCHEN("#";WECHSELN($A20;".";"#";2))+1;99)+1900)); WENN(ISTZAHL($B20); WENN(ISTZAHL($A20); (WENN(LÄNGE($B20)=4;"1.1.";0)&$B20+($B20<1900)*1900)*1;TEXT($B20;"TT.MM.")&JAHR($B20)+1900); WECHSELN($B20;TEIL($B20;SUCHEN("#";WECHSELN($B20;".";"#";2))+1;99); TEIL($B20;SUCHEN("#";WECHSELN($B20;".";"#";2))+1;99)+1900)); "Y"))
D20=WENN(($A20="")+($B20=""); "";DATEDIF(WENN(ISTZAHL($A20); (WENN(LÄNGE($A20)=4;"1.1.";0)&$A20+($A20<1900)*1900)*1;WECHSELN($A20;TEIL($A20;SUCHEN("#";WECHSELN($A20;".";"#";2))+1;99); TEIL($A20;SUCHEN("#";WECHSELN($A20;".";"#";2))+1;99)+1900)); WENN(ISTZAHL($B20); WENN(ISTZAHL($A20); (WENN(LÄNGE($B20)=4;"1.1.";0)&$B20+($B20<1900)*1900)*1;TEXT($B20;"TT.MM.")&JAHR($B20)+1900); WECHSELN($B20;TEIL($B20;SUCHEN("#";WECHSELN($B20;".";"#";2))+1;99); TEIL($B20;SUCHEN("#";WECHSELN($B20;".";"#";2))+1;99)+1900)); "YM"))
E20=WENN(($A20="")+($B20=""); "";DATEDIF(WENN(ISTZAHL($A20); (WENN(LÄNGE($A20)=4;"1.1.";0)&$A20+($A20<1900)*1900)*1;WECHSELN($A20;TEIL($A20;SUCHEN("#";WECHSELN($A20;".";"#";2))+1;99); TEIL($A20;SUCHEN("#";WECHSELN($A20;".";"#";2))+1;99)+1900)); WENN(ISTZAHL($B20); WENN(ISTZAHL($A20); (WENN(LÄNGE($B20)=4;"1.1.";0)&$B20+($B20<1900)*1900)*1;TEXT($B20;"TT.MM.")&JAHR($B20)+1900); WECHSELN($B20;TEIL($B20;SUCHEN("#";WECHSELN($B20;".";"#";2))+1;99); TEIL($B20;SUCHEN("#";WECHSELN($B20;".";"#";2))+1;99)+1900)); "MD"))


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Gruß
Wilfried
Anzeige

28 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige