Microsoft Excel

Herbers Excel/VBA-Archiv

Amerikanisches Datum umwandeln

Betrifft: Amerikanisches Datum umwandeln von: Gig
Geschrieben am: 10.10.2020 20:48:19



Hallo,

ich versuche es jetzt schon stundenlang, aber ich bekomme es nicht hin.
Ich möchte ein amerikanisches Datum (4/12/20) in ein europäisches Datum (12.04.20) umwandeln. Das amerikanische Datum liegt als Text vor und der Tag (hier: 12) liegt immer an zweiter Stelle. Probleme bereiten mir, dass Tage und Monate entweder aus einer oder zwei Zahlen bestehen können....

Wer hat dazu eine Formel bereit?

https://www.herber.de/bbs/user/140789.xlsx

Vielen Dank im Voraus

Betrifft: =TEXT(A1*1;"MM.TT.JJ")
von: WF
Geschrieben am: 10.10.2020 21:03:44

.

Betrifft: AW: =TEXT(A1*1;"MM.TT.JJ")
von: Gig
Geschrieben am: 10.10.2020 21:08:17

Hallo.
Dabei zeigt er leider einen value-Fehler an.

Betrifft: Ich erhalte keinen Fehler ?
von: WF
Geschrieben am: 10.10.2020 21:20:50

.

Betrifft: OK - da sind Leerstellen
von: WF
Geschrieben am: 10.10.2020 21:41:00

die kann man ja mit GLÄTTEN eliminieren.
Aber 7/15/20 mit 1 multipliziert gibt Müll, das es den Monat 15 ja nicht gibt.

WF

Betrifft: AW: OK - da sind Leerstellen
von: Gig
Geschrieben am: 10.10.2020 21:45:07

15 ist auch nicht der Monat sondern der Tag!!

Betrifft: aber in deutscher Schreibweise ist es der Monat
von: WF
Geschrieben am: 10.10.2020 22:01:00

multipliziert mit 1 isch over.

Betrifft: AW: aber in deutscher Schreibweise ist es der Monat
von: Gig
Geschrieben am: 10.10.2020 22:03:37

Es ist aber im amerikanischen Format und da kommt der Monat zuerst und danach der Tag.

Trotzdem Danke.

Betrifft: AW: aber in deutscher Schreibweise ist es der Monat
von: Werner B
Geschrieben am: 10.10.2020 22:18:21

so?
=DATUM(2000+WERT(RECHTS(B3;LÄNGE(B3)-FINDEN("/";B3;FINDEN("/";B3)+1)));WERT(LINKS(B3;FINDEN("/";B3) -1));WERT(TEIL(B3;FINDEN("/";B3)+1;FINDEN("/";B3;FINDEN("/";B3)+1)-FINDEN("/";B3)-1))) 
Beispiel Datum in B3...

Gruß Werner B.

Betrifft: Was hat der Betreff mit dem Beitragsinhalt zu tun?
von: WF
Geschrieben am: 10.10.2020 22:37:49

.

Betrifft: AW: Was hat der Betreff mit dem Beitragsinhalt zu tun?
von: Gig
Geschrieben am: 10.10.2020 22:52:27

Danke!

Betrifft: Du kapierst es nicht
von: WF
Geschrieben am: 10.10.2020 22:20:54

ich habe 7/11/20 in A1 mit TEXT(A1*1;"MM.TT.JJ") umgewandelt in 11.07.20
Und bei einem "Monat" größer 12 geht's eben in die Hose.

WF

Betrifft: AW: =TEXT(A1*1;"MM.TT.JJ")
von: Gig
Geschrieben am: 10.10.2020 21:40:40

Bei mir schon. Hast du es in meinem Tabellenblatt probiert?

Betrifft: 365, Web, 2019
von: lupo1
Geschrieben am: 10.10.2020 21:08:23

=--WECHSELN((TEXTVERKETTEN(".";;TEIL(WECHSELN(A1;"/";WIEDERHOLEN(" ";19));{2.1.3}*19-18;19)));" ";)

Betrifft: AW: 365, Web, 2019
von: Gig
Geschrieben am: 10.10.2020 21:43:23

Hallo,
Danke für deine Antwort.

Habs mit deiner Formel leider nicht hinbekommen. Hab in englische Funktionsnamen umgewandelt, da mein Excel auf Englisch ist.
Könntest du es mit meiner Beispieldatei versuchen?

Danke.

Betrifft: Du hast Zugriff auf XLWeb
von: lupo1
Geschrieben am: 10.10.2020 22:00:19

Dort kannst Du Deine Datei uploaden und meine Formel einsetzen.

Betrifft: AW: Amerikanisches Datum umwandeln
von: Daniel
Geschrieben am: 10.10.2020 21:09:41

Hi

Muss es eine Formel sein?
Da kannst die Spalte auch mit Daten - Datentools - Text in Spalten umwandeln.
Hierzu die Einstellungen so wählen, dass keine neuen Spalten entstehen und im Schritt 3 stellt du dann Datum mit MTJ ein.

Gruß Daniel

Betrifft: AW: Amerikanisches Datum umwandeln
von: Gig
Geschrieben am: 10.10.2020 21:34:19

Hallo,
danke für deine Antwort.
Die Idee finde ich sehr gut.
Aber wie kann man die Einstellungen so wählen, dass keine neuen Spalten entstehen?

Betrifft: AW: Amerikanisches Datum umwandeln
von: Daniel
Geschrieben am: 10.10.2020 23:04:24

Naja, indem man ein Trennzeichen auswählt, das nicht vorkommt, oder gar keines.
Oder man wählt "feste Breite" und löscht im Schritt 2 alle Trennstriche.

Gruß Daniel

Betrifft: AW: Amerikanisches Datum umwandeln
von: Gig
Geschrieben am: 10.10.2020 22:00:27

Leider funktioniert es nicht weil in der Zelle mit dem Text (amerik. Datum) eine Formel drinnen steht, mit der das amerik. Datum aus einer anderen Zelle ausgelesen wird.

Betrifft: AW: Amerikanisches Datum umwandeln
von: Daniel
Geschrieben am: 10.10.2020 23:06:35

Dann muss es per Formel sein.
Wenn die Datumswerte nicht vor der Jahrtausendwende liegen, dann vielleicht so:

=--(20&RECHTS(A1;2)&"-"&WECHSELN(LINKS(A1;LÄNGE(A1)-3);"/";"-"))

Gruß Daniel

Betrifft: AW: Amerikanisches Datum umwandeln
von: Günther
Geschrieben am: 10.10.2020 23:39:21

... und wo ist denn nun das Problem? Schau mal hier nach => http://www.excel-ist-sexy.de/power-query-quickies-datum-zeit-us-de/
 
Gruß
Günther  |  mein Excel-Blog

Betrifft: AW: Amerikanisches Datum umwandeln
von: Helene
Geschrieben am: 10.10.2020 23:30:55

Hallo,
geht bestimmt kürzer, funktioniert aber!
https://www.herber.de/bbs/user/140790.xlsx
Mfg

Betrifft: Ja, du hast recht, ...
von: Luc:?
Geschrieben am: 11.10.2020 11:46:17

Helene,
es geht kürzer und du hast den Längenrekord → 263 Zeichen und 20 Fktsaufrufe… ;-]
Der Nächste wäre Werner B. mit 186:15, gefolgt von Lupo mit 88:5 in meiner Adaption mit UDF:
=--WECHSELN(VJoin(TEIL(WECHSELN(B3;"/";WIEDERHOLEN(" ";19));{2.1.3}*19-18;19);".");" ";)
Aber es geht noch kürzer, klassisch (81:5) so:
=--WECHSELN(TEIL(B3;SUCHEN("/";B3)+1;5);"/";-LINKS(WECHSELN(B3;"/";" ");3)&"-";1)
Mit UDFs gibt's noch mehr. Hier mal nur die wahrscheinlich kürzeste Variante mit 34:2:
=--PickOn(GLÄTTEN(B3);"2/1/3";"/")
Alle Fmln sind darauf ausgerichtet, einen Tageszähler zu erzeugen, der als ein übliches Datum formatiert wdn kann.
Was WFs HalbLösung betrifft, Gig,
wäre das mit Monatsnamen und LänderKennzeichen ggf eindeutiger zu lösen (aber nicht kürzer). Außerdem kann man solche Daten auch gleich mit richtigem Format (ala WF) importieren oder mit Daniels Vorschlag dieses nachholen, denn darauf läuft der hinaus.
Gruß + schöSo, Luc :-?
„Die universelle Befähigung zur Unfähigkeit macht jede menschliche Leistung zu einem unglaublichen Wunder.“ Stapps ironisches Paradoxon

Betrifft: AW: Ja, du hast recht, ...
von: Daniel
Geschrieben am: 11.10.2020 12:13:12

Hi Luc

Mit UDFs bei einem Wettbewerb um die kürzeste Formel mitmachen ist aber immer ein bisschen wie mit einem E-Bike bei einem Radrennen mitfahren.
Mit UDF ist konsequenterweise die kürzeste Lösung immer: =x(A1)
Ansonsten ist die UDF nicht optimal für diesen Anwendungsfall programmiert.

Bzw, meine klassische Formellösung liegt hier bei 62;4, das hattest du vergessen zu erwähnen.

Gruß Daniel

Betrifft: AW: Ja, du hast recht, ...
von: Luc:?
Geschrieben am: 11.10.2020 14:21:46

…Daniel,
dummes Versäumnis. War wg seiner AW nur auf deinen 1.Vorschlag aus meinem Blickfeld geraten. Das wäre dann 64:4 und somit die beste klassische Lösung, weil von hinten nach vorne allemal besser ist als von vorn in die Mitte. So ergibt sich mit den Minus-Trennern und der zusätzl 20 auch gleich die andere der beiden internationalen Formen, die Xl direkt umwandeln kann. Hatte an so etwas gedacht, das Wie ist mir nur gerade nicht mehr eingefallen.
Und das war nicht das einzige Versäumnis, der PickOn-Link fehlte auch (obwohl leicht zu finden):
https://www.herber.de/forum/archiv/1140to1144/1141994_Teilstring_aus_String_entfernen.html#1142025 (Folgebeiträge m.Korr beachten!)
So speziell ist diese UDF nun ja nicht. Sie soll ähnlich wie TEIL nur Elemente aus einem Text herauslösen, wobei diese nicht durch Zähler, sondern lfdNrn und angebbare WortGrenzZeichen definiert wdn. Wdn mehrere dieser Nrn, ebenfalls durch die Zeichen getrennt, angegeben, wdn alle angegebenen Teile in deren NrnReihenfolge ausgewählt und mit den gleichen Zeichen wieder zusammengesetzt. Man kann so die WortReihenfolge in einem Text ändern. Das alles ist der eigentl HptZweck der UDF, bietet sich hier aber ebenfalls an, weil gleiche und eindeutige TrennZeichen vorhanden sind. Ich schreibe idR keine speziellen UDFs vom x(A1)-Typ. Die verwenden Pgmmierer gern für stets wiederkehrende Aufgaben und so sehen oft auch vbFktt aus, aber eher selten xlFktt.
Gruß, Luc :-?