Registriert seit: 15.10.2016
Version(en): 2016
Hallo Community, folgender Sachverhalt: Ich übernehme aus einem Datenbankreport Datumstexte. Diese können je nach Anwender deutsche Datumstexte, z.B. 4. Mai 17, oder einem englischen Datumsschema, z.B. 04-May-17 entsprechen. In der Verwendung benötige ich das Datum als rechenbare Angabe, was ich durch Multiplikation mit 1 zu erreichen versuche. Ein Problem ergibt sich für März, Mai, Oktober und Dezember, weil hier mein deutsches Excel den englischen Datumstext nicht umsetzen kann. Meine aktuelle Lösung sieht so aus, dass ich hier mit "Wechseln", englische Kürzel gegen deutsche tausche: =WECHSELN(WECHSELN(WECHSELN(WECHSELN(;"Mar";"Mrz");"May";"Mai");"Oct";"Okt");"Dec";"Dez")*1
LB1972_20170218_Datumstext_in_echtes Datum_wandeln.xlsm (Größe: 48,73 KB / Downloads: 17)
Das funktioniert, scheint mir aber von mäßiger Eleganz zu sein. Hat hier jemand von euch "den Kniff"? Vielen dank schon mal. Gruß LB1972
Registriert seit: 12.04.2014
Version(en): Office 365
(18.02.2017, 12:58)LB1972 schrieb: Ich übernehme aus einem Datenbankreport Datumstexte. Diese können je nach Anwender deutsche Datumstexte, z.B. 4. Mai 17, oder einem englischen Datumsschema, z.B. 04-May-17 entsprechen. Ich wäre sehr überrascht wenn in der Datenbank tatsächlich unterschiedliche Datumsformate abgespeichert sind. Denn dann hätte der Datenbankprogrammierer das selbe Problem wie du. Und dieses Problem sollte möglichst schon in der Datenbank behoben werden.
Wir sehen uns! ... Detlef
Meine Beiträge können Ironie oder Sarkasmus enthalten.
Registriert seit: 14.04.2014
Version(en): 2003, 2007
18.02.2017, 14:06
(Dieser Beitrag wurde zuletzt bearbeitet: 18.02.2017, 14:58 von atilla.)
Hallo, da Du VBA einsetzt, hier eine VBA Lösung: Code: Sub Datum_format() Dim LoLetzte As Long, i As Long Dim vntDatum LoLetzte = Cells(Rows.Count, 12).End(xlUp).Row Application.ScreenUpdating = False
For i = 9 To LoLetzte vntDatum = Cells(i, 13) If IsDate(vntDatum) Then 'ist deutsches Format Cells(i, 15) = CDate(vntDatum) Else 'wenn nicht deutsches Format Cells(i, 15) = Format(vntDatum, "MM\/DD\/YYYY") Cells(i, 15).NumberFormat = "DD-MMM-YYYY" End If Next i
'Daten Text in Spalten mit Auswahl der Option Datum ausfüheren Range("O9:O" & LoLetzte).TextToColumns Destination:=Range("O9"), DataType:=xlFixedWidth, _ FieldInfo:=Array(0, 4), TrailingMinusNumbers:=True Application.ScreenUpdating = True End Sub
Spalte M wird ausgelesen und in Spalte O wird geschrieben.
Gruß Atilla
Registriert seit: 28.05.2014
Version(en): 2013 / 2016
Moin, ist es wirklich so, dass der englische Datumstext "04-May-17" ist (GB)? Oder doch wohl eher "May-04-17" US). Und ich würde die Daten aus dem Report mit Power Query einlesen, dann bist du das Problem (in beiden Varianten) rasch los. - Ähm, vielleicht schaffe ich es heute noch, in meinen Blog einen dazu gut passenden Beitrag (mit Video) einzustellen ... Zumindest spreche ich gerade die letzten ~30 Texte. Im Moment brauche ich eine "schöpferische Pause". :05:
Beste Grüße Günther
Excel-ist-sexy.de …schau doch mal rein! Der Sicherheit meiner Daten wegen lade ich keine *.xlsm bzw. *.xlsb- Files mehr herunter! -> So geht's ohne!
Registriert seit: 15.10.2016
Version(en): 2016
Hallo Atilla,
danke für den Ansatz. Das müsste helfen.
@ shift-del,
es ist einfacher (und billiger) in meinem Excel das Problem zu fixen, als einen namhaften Datenbankhersteller zu etwas zu bewegen.
@ GMG-CC,
das Datum kommt tatsächlich auch in der englischen Version als TT-MMM-JJJJ
Danke für die Unterstützung und schönes WE
LB1972
Registriert seit: 28.05.2014
Version(en): 2013 / 2016
Ja, das britische Datum "frisst" Power Query auch ohne Murren
Beste Grüße Günther
Excel-ist-sexy.de …schau doch mal rein! Der Sicherheit meiner Daten wegen lade ich keine *.xlsm bzw. *.xlsb- Files mehr herunter! -> So geht's ohne!
Registriert seit: 10.04.2014
Version(en): Office 2019
(18.02.2017, 12:58)LB1972 schrieb: Hallo Community, ... Meine aktuelle Lösung sieht so aus, dass ich hier mit "Wechseln", englische Kürzel gegen deutsche tausche:
=WECHSELN(WECHSELN(WECHSELN(WECHSELN(;"Mar";"Mrz");"May";"Mai");"Oct";"Okt");"Dec";"Dez")*1
Das funktioniert, scheint mir aber von mäßiger Eleganz zu sein. ... Gruß
LB1972 Hallo, was meinst du mit "mäßiger Eleganz" die Formel liefert das gewünschte Ergebnis. Was willst du denn noch? Eine Verkürzung..? Das geht aber warum? Für einpaar Zeichen... Oder willst di was ganz anderes erreichen..?
Gruß Jörg stolzes Mitglied im ----Excel-Verein Freund einer excellenten Power Query-Abfrage
Registriert seit: 11.10.2014
Version(en): 12/2007&14/2010
Vielleicht denkt LB ja an so etwas, Jockel: {=--(LINKS(A1;3)&VERGLEICH(TEIL(A1;4;3);TEXT("1."&ZEILE(1:12);"[$-409]MMM");0)&RECHTS(A1;3))} Achtung, (singulare) Matrixformel! Und dann natürlich als Datum formatieren! ;) Gruß, Castor
Registriert seit: 12.10.2014
Version(en): 365 Insider (32 Bit)
20.02.2017, 08:05
(Dieser Beitrag wurde zuletzt bearbeitet: 20.02.2017, 08:05 von RPP63.)
Moin! Da Eleganz bekanntlich im Auge des Betrachters liegt, will ich auch noch eine Möglichkeit erwähnen: =WECHSELN(M9;TEIL(M9;4;3);SUCHEN(TEIL(M9;4;3);"||janfebmaraprmayjunjulaugsepoctnovdec")/3)*1 Und dann natürlich als Datum formatieren! :26:
Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Registriert seit: 15.10.2016
Version(en): 2016
Hallo zusammen, vielen Dank für eure Anregungen. Auf die Frage nach der Eleganzvorstellung möchte ich noch kurz eingehen. Mir nicht bekannt (aber das muss ja nix heißen) wäre eine "Umkehrung" der "TEXT"-Formel, Code: =TEXT(H11;"[$-en-US]TT-MMM-JJ;@")
so dass ich einen Bezug in definierter Textform in ein Datum wandeln könnte. Beispiel: Code: M9 = 18-Feb-17
Q9 =ZAHLENWERT(M9;"-";"-")
Die Funktion "ZAHLENWERT" existiert zwar, kann aber wohl keinen Datumstext umsetzen. Viele Grüße LB1972
|