Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1396to1400
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

Datum umwandeln

Datum umwandeln
22.12.2014 17:58:04
Jenny
Hallo an alle Excel-Freunde
ich hoffe jemand von euch hat eine passende Formel für mich.
Es geht mir um die Spalte O meiner Tabelle. Hier können 4 verschiedene Sachen stehen. Herauskommen soll auf jeden Fall ein Datum.
1. Möglichkeit: Es steht bereits ein Datum im Format TT.MM.JJJJ da dann soll die Formel dies einfach nur wieder ausgeben.
2. Möglichkeit: Es steht ein Datum im Format JJJJ-MM da, das Zellformat ist in diésem Fall Standard. Hier soll die Formel den letzten Tag dieses Monats ausgeben.
3. Möglichkeit: Es steht eine Jahreszahl im Format JJJJ da, das Zellformat ist auch hier Standard, auch hier soll die Formel den letzten Tag, also den 31.12. dieses Jahres ausgeben.
4. Möglichkeit: Die Zelle ist leer, dann soll die Formel die Jahreszahl aus Spalte L nehmen und mit dieser verfahren wie bei der 3. Möglichkeit.
Hat da jemand eine Formel für mich?
Vielen Dank und frohe Weihnachten
Jenny

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
hat sich so gut wie erledigt
22.12.2014 18:09:18
Jenny
Habe im Forum das hier gefunden, wenn auch von mir etwas angepasst auf meinen Fall, hatte wohl jemand schonmal so ein Problem
=WENN(O2="";(1&-(L2+1))-1;WENN(LÄNGE(O2)=4;(1&-(O2+1))-1;WENN(LÄNGE(O2)=7;DATUM(LINKS(O2;4); RECHTS(O2;2)+1;);O2+0))) Ich hab mit der Formel nur das Problem, eines meiner Daten ist der 10.08.1914 aus diesem Datum macht diese Formel den 31.12.5336 hat da noch jemand eine Idee? Alle andere Daten in der Tabelle scheinen zu funktionieren.
Viele Grüße
Jenny

AW: hat sich so gut wie erledigt
22.12.2014 18:34:17
Matthias
Hallo
Dann schreib es doch als Formel in die Zelle
 MNO
210.08.1914 10.08.1914

Formeln der Tabelle
ZelleFormel
M2=WENN(O2="";(1&-(L2+1))-1;WENN(LÄNGE(O2)=4;(1&-(O2+1))-1;WENN(LÄNGE(O2)=7;DATUM(LINKS(O2;4); RECHTS(O2;2)+1;);O2+0)))
O2="10.08.1914"


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

Anzeige
AW: hat sich so gut wie erledigt
22.12.2014 20:43:51
Jenny
Hallo Matthias,
ok, ja so geht's auch. Wollte halt vorbeugen, falls noch weitere derartige Fälle in Zukunft dazukommen.
Gruß
Jenny

Vorbeugung: Pkt 4 als Text- oder EchtDatum
23.12.2014 01:48:52
Luc:-?
Hallo, Jenny;
falls du ein EchtDatum nicht jedesmal auf Text ändern willst, ist das mit folgder FmlErweiterung egal:
=WENN(O2="";(1&-(L2+1))-1;WENN(LÄNGE(GetText(O2))=4;(1&-(GetText(O2)+1))-1;WENN(LÄNGE(O2)=7; DATUM(LINKS(O2;4); RECHTS(O2;2)+1;);O2+0)))
Bei GetText handelt es sich um eine Trivial-UDF, die wie folgt aussehen kann:
Function GetText(Bezug As Range): GetText = Bezug.Text: End Function
Die Datei muss dann als .xlsm/b gespeichert wdn, falls sich auch der PgmCode in derselben befindet. Nicht aber, falls er in einer externen Datei (aktives AddIn, Personal.xlsb) steht.
Alternativ kannst du auch mit einer XLM-Fkt in benannter Fml arbeiten (in diesem Fall muss die Datei als .xlsm/b gespeichert wdn!):
=WENN(O2="";(1&-(L2+1))-1;WENN(LÄNGE(Datex)=4;(1&-(Datex+1))-1;WENN(LÄNGE(O2)=7;DATUM(LINKS(O2;4); RECHTS(O2;2)+1;);O2+0)))
Unter dem Namen Datex ist dann folgende Fml anzulegen: =ZELLE.ZUORDNEN(53;O2)
GetText und Datex fangen auch solche Abweichungen von der Vorgabe wie als JJJJ formatiertes EchtDatum, nicht aber JJJJ-M- bzw JJ-M- und JJ-MM-Texte ab, die nicht oder falsch interpretiert wdn. Hierfür müssten dann folgde Fmln benutzt wdn:
=WENN(O2="";(1&-(L2+1))-1;WENN(LÄNGE(GetText(O2))bzw
=WENN(O2="";(1&-(L2+1))-1;WENN(LÄNGE(Datex) Falls auch eine VorgabeAbweichung wie 9-9 (J-M) berücksichtigt wdn muss, sollte ggf eine andere Fml benutzt wdn, zB:
=WAHL(ISTLEER(O2)+(LÄNGE(GetText(O2))=3)+LÄNGE(GetText(O2))/2+ISTTEXT(O2);DATUM(L2;12;31); DATUM(GetText(O2);12;31);DATUM(Splint(O2;"-";1;1);Splint(O2;"-";2;2)+1;);DATUM(Splint(O2;"-";1;1); Splint(O2;"-";2;2)+1;);O2;--O2)
Diese Fml benutzt zusätzlich die UDF Splint aus dem Archiv.
Gruß + FroWeihn, Luc :-?
Die Wahrheit hinter den Lügen…
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige