Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1536to1540
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

Umwandeln von Daten vor 1900

Umwandeln von Daten vor 1900
30.01.2017 21:35:59
Daten
Hallo an euch alle
habe in einer Tabelle Daten, die vor 1900 liegen im Format JJJJ-MM-TT (und ja ich weiß für Excel ist das Text aber es sieht nunmal so aus).
Konkret geht es um die Daten
1849-09-03
1873-01-28
1874-02-03
1877-04-30
1879-01-29
1884-03-21
1887-03-14
1887-05-12
1890-04-18
1892-03-18
1892-04-26
1892-06-12
1893-04-01
1893-12-07
1894-10-25
1896-10-01
1897-04-20
1898-02-28
1898-07-17
1898-08-23
1898-09-26
1899-07-23
1899-07-23
1899-11-04
seht ihr eine Möglichkeit mit einer Formel diese umzurechnen, also aus dem 31.12.1899 die Zahl -1 zu machen, aus dem 30.12.1899 die Zahl -2, aus dem 29.12.1899 die Zahl -3 usw.
Danke für eure Hilfe
Christian

18
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Umwandeln von Daten vor 1900
30.01.2017 22:46:10
Daten
Hallo
eine Formel hab ich jetzt nicht, VBA könnte aber helfen.

Function DatumVor1900(byval s as string) as Double
DatumVor1900 = dateserial(left(s, 4), mid(s, 6, 2), right(s, 2))
End Function
Im Tabellenblatt rufst du die Fknt dann auf
A1 = 1899-12-30
A2 = DatumVor1900(A1) - 2
AW: Umwandeln von Daten vor 1900
31.01.2017 08:20:03
Daten
Hallo Planlos,
danke erstmal.
Deine Formel gibt für den 31.12.1899 die Zahl 0 aus, was aber sogar richtig ist, das war bei der Aufgabenstellung ein Denkfehler von mir als ich sagte -1.
Auf jeden Fall funktioniert es, danke.
Christian
Berechnung VBA - Deine Schreibweise vorausgesetzt
31.01.2017 20:00:40
lupo1
=WENNFEHLER(A1-(A1<61);(LINKS(A1;4)+400&RECHTS(A1;6))-146097)
1900-03-01 61,00
1900-02-29 61,00
1900-02-28 60,00
1900-01-01 2,00
1899-12-31 1,00
1899-12-30 -
1899-12-29 -1,00
Wie Luc schon schrieb: "Zeitenwende" ist dann der 30.12.1899, nicht der 31.12.1899. Es findet keine Fehlerbehandlung des nicht existierenden 29.2.1900 statt, um die Formel für diesen einen Tag nicht unnötig aufzublähen. Mit anderen Worten: Wer einen 29.2.1900 versucht, ist selbst schuld.
Anzeige
Korrektur
31.01.2017 20:12:07
lupo1
=WENNFEHLER(A1+(--A1<61);(LINKS(A1;4)+400&RECHTS(A1;6))-146097)
ist richtig anstelle des falschen
=WENNFEHLER(A1+(A1<61);(LINKS(A1;4)+400&RECHTS(A1;6))-146097)
AW: Korrektur
31.01.2017 20:29:48
Christian
Hallo Lupo, ich habe das jetzt am Beispiel 1899-11-04 getestet, beide Formeln geben -56 aus, genauso wie auch die beiden Makros. Verstehe jetzt nicht den Unterschied zwischen deinen beiden Formeln, bzw. warum die erste falsch sein soll.
AW: Korrektur
31.01.2017 20:36:09
lupo1
Die mit den -- kann auch Texte. Also auch
'1900-04-23
statt nur
1900-04-23
Von mir beabsichtigt war jedenfalls die mit den --
AW: Berechnung VBA - Deine Schreibweise vorausgesetzt
31.01.2017 20:15:20
Christian
Hallo Lupo,
gab es den 29.2.1900 überhaupt? ist nicht alle 100 Jahre kein Schaltjahr?
Aber es liegen keine Daten im Format JJJJ-MM-TT im Jahr 1900 oder später vor, also spielt es auch keine Rolle.
Daen im Jahr 1900 werden ja von Excel als Datum erkannt.
Gruß
Christian
Anzeige
Alle 100 J gibt es kein SJ. Alle 400 doch! owT
31.01.2017 20:24:06
lupo1
.
AW: Berechnung VBA - Deine Schreibweise vorausgesetzt
31.01.2017 20:18:18
Christian
Hallo Lupo,
gab es den 29.2.1900 überhaupt? ist nicht alle 100 Jahre kein Schaltjahr?
Aber es liegen keine Daten im Format JJJJ-MM-TT im Jahr 1900 oder später vor, also spielt es auch keine Rolle.
Daen im Jahr 1900 werden ja von Excel als Datum erkannt.
Gruß
Christian
Warum sollen das negative Zahlen wdn, ...
30.01.2017 23:03:44
Luc:-?
…Christian,
so etwas ist doch erst für die Jahre vor dem Jahr 1 üblich…‽ ;-)
Mit VBA kommt man so bis zum Jahr 100 (100-01-01 → -657434, ab 99-12-31 wird zZ 1999 angenommen), ohne die Xl-Ungereimtheit zwischen 1900-01-01 und 1900-03-01! D.h., 1899-12-31 ist 1, 1899-12-30 0 und 1899-12-29 -1 usw. Schluss ist dann nach oben bei 9999-12-31 → 2958465.
Das kann mit einem UDF-1-Zeiler erledigt wdn:
Function Text2Date(Datum$): Text2Date = CDate(Datum): End Function
A1: 1849-09-03 → B1: -18380
Fml in B1: =Text2Date(A1)
Feedback nicht unerwünscht! Gruß, Luc :-?
Besser informiert mit …
Anzeige
AW: Warum sollen das negative Zahlen wdn, ...
30.01.2017 23:11:55
Christian
Hallo Luc,
das Ganze hat 2 Ziele Nr. 1, auf das Ergebnis und ein weiteres Datum z.B. 100000 Tage (oder wieviele auch immer nötig sind zu addieren, um dann zwischen einem Datum vor und einem Datum nach 1900 die DATEDIF Formel anwenden zu können.
Grund Nummer 2 die RANG Formel auf Daten vor und nach 1900 anwenden zu können.
Gruß
Christian
Der 1.1.1900 ist in VBA standardmäßig Tag 2, ...
30.01.2017 23:21:49
Luc:-?
…Christian;
wenn der 0 sein soll, musst du noch -2 rechnen (wie es auch Planlos tut), um schon ab 31.12.1899 negative Zahlen zu erhalten.
Wenn ich mich recht erinnere, beträgt der Kalender-Wiederhol-Zyklus 4000 Jahre. Damit kannst du (sinnfreierweise) bis zum Urknall zurück- und bis zum Ende des Universums vorausrechnen… ;-)
Luc :-?
Anzeige
Kalenderwiederholzyklus
31.01.2017 21:20:04
lupo1
Liegt bei 400 Jahren für Schaltjahre UND Wochentage, wird aber frühestens bei der Umstellung zum Gregorianischen Kalender in 1582 eh rückwärts ausgehebelt.
Ein https://de.wikipedia.org/wiki/Gregorianischer_Kalender#Osterzyklus dauert übrigens geschlagene 5.700.000 Jahre, nicht nur 4000.
Nach 3230 Jahren müsste wieder ein Schalttag entfallen, um astronomisch genau zu sein.
Ja, soweit ja richtig, ...
01.02.2017 01:23:56
Luc:-?
…Lupo;
ich habe natürlich weder die SchaltSekunden noch die längeren Zeiträume exakt berücksichtigt. 4Tsd Jahre sind ein Näherungswert, der in meinem ewigen Kalender (ohne OsterZyklus) gut fktioniert hatte (wenn ich die Zahl richtig erinnere). Die 5,7 Mio Jahre kann Xl ohnehin nicht darstellen (auch VBA nicht), so dass das ohnehin unerheblich ist. Und sinnfrei ist es ohnehin! ;-)
Wichtig könnten (für Europäer, die Maya hatten ohnehin schon damals das Xl-Prinzip verwendet!) nur die Jahre vor den Kalender­Umbrüchen sein, aber zu Zeiten von C.I.Caesar gab's noch kein christliches Osterfest und ob das mit den Wochentagen für die ganze Zeit passt, kann wohl auch niemand mit Bestimmtheit sagen — ist also ohnehin rein hypothetisch. Außerdem scheinen die alten Kalender vor ca dem Jahr 1000 ohnehin nicht zu stimmen — es gibt da deutliche Unge­reimt­heiten. Dazu findet man im INet teils heftige Diskussionen. Wikipedia (bzw die, die sich dort für kompetente Vertreter des mainstreams halten) verbannt so etwas für gewöhnlich aus seinen „Heiligen Hallen anerkannten Wissens“…
Tja, und was vor dem Julianischen üblich war, entzieht sich ohnehin einer Aufbereitung. Es hatten ja nicht alle Völker der Antike den gleichen Kalender; nicht mal die Wochenlängen waren gleich…
Gruß, Luc :-?
Anzeige
AW: Warum sollen das negative Zahlen wdn, ...
31.01.2017 08:27:39
Christian
Habe jetzt beide Makros mal getestet,
wenn ich bei beiden Makros -1 rechne, also =DatumVor1900(H4564)-1 und =Text2Date(H4564)-1
bekomme ich als Ergebnis für den 31.12.1899 die Zahl 0 und für den 1.1.1900 die Zahl 1
Da da ja auch genau ein Tag dazwischen liegt, hab ich damit meine Lösung, auch wenn ich ursprünglich wollte, dass der 31.12.1899 die Zahl -1 wird, aber das war ein Denkfehler von mir.
Danke für eure Unterstützung
Christian
Aha, na dann iss ja jut, ... ;-)
31.01.2017 16:05:24
Luc:-?
…aber mach das nicht für Datumswerte ab 1.1.1900, Christian;
denn das stimmt dann nicht mehr mit Xl überein! In VBA ist nicht umsonst der 30.12.1899=0. Dadurch wird der Fehler vor dem 1.3.1900 ausgeglichen. Xl wertet 1900 aus Lotus-Kom­patibi­litäts­gründen als Schaltjahr, was ja nicht richtig ist. Somit ist die Tageszählung in Xl eigentlich erst ab 1.3.1900 stimmig. Von da an rückwärts gezählt, kommt eben als Tag 1 der 31.12.1899 heraus. Und da es so auch einen Tag 0 geben muss, hat in VBA erst der 29.12.1899 den Wert -1.
Luc :-?
Anzeige
danke für die Erklärung, o.w.T.
31.01.2017 16:36:02
Christian
.
Antwort auch von mir, s.o. falscher Ast owT
31.01.2017 20:03:11
mir,
.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige