Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Text zu Datum via Power Query
#1
Hallo,

In der Spalte A sind viele verschiedene Zahleneinträge im Format 50315, 111219, 130515, usw. enthalten und ich würde dieses gerne mithilfe von Power Query in das Format eines Datums (05.03.2015) bringen.
Gibt es dazu eine einfache Lösung?

LG
Antwortento top
#2
Hallo,

mach aus der Zahl erstmal ein Text   

mit HilfsSpalte dann auf 8 Stellen vereinheitlichen

HilfsSpalte = if Text.Length(Text) = 7 then "0" & Text else Text

Versuch mal jetzt die Hilfsspalte als  Datum zu formatieren

Kommt da ein error dann

NeuesDatum= Text.Start(Text , 2) & "." & Text.Range(Text , 2 , 2) & "." & Text.End(Text , 4)
Antwortento top
#3
Moin!
Hier empfinde ich PQ als "etwas" überdimensioniert!
Das wird doch mit einer simplen Formel sehr viel schneller erschlagen:

AB
1DatStringDatum
25031505.03.2015
311121911.12.2019
413051513.05.2015

ZelleFormel
B2=DATUM("20"&RECHTS(A2;2);TEIL(A2;LÄNGE(A2)-3;2);LINKS(A2;LÄNGE(A2)-4))

Ab 2030 geht es dann auch wieder mit ohne "20"& Wink

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)
Antwortento top
#4
Hallo, mit PQ ginge das z. B. so..:

PHP-Code:
let
    Quelle 
Excel.CurrentWorkbook(){[Name="Tabelle1"]}[Content],
 
   #"Spalte nach Position teilen" = Table.SplitColumn(Table.TransformColumnTypes(Quelle, {{"Date", type text}}, "de-DE"), "Date", Splitter.SplitTextByPositions({0, 2}, true), {"Date.1", "Date.2"}),
 
   #"Geänderter Typ" = Table.TransformColumnTypes(#"Spalte nach Position teilen",{{"Date.1", Int64.Type}, {"Date.2", Int64.Type}}),
 
   #"Spalte nach Position teilen1" = Table.SplitColumn(Table.TransformColumnTypes(#"Geänderter Typ", {{"Date.1", type text}}, "de-DE"), "Date.1", Splitter.SplitTextByPositions({0, 2}, true), {"Date.1.1", "Date.1.2"}),
 
   #"Geänderter Typ1" = Table.TransformColumnTypes(#"Spalte nach Position teilen1",{{"Date.1.1", Int64.Type}, {"Date.1.2", Int64.Type}}),
 
   #"Zusammengeführte Spalten" = Table.CombineColumns(Table.TransformColumnTypes(#"Geänderter Typ1", {{"Date.1.1", type text}, {"Date.1.2", type text}, {"Date.2", type text}}, "de-DE"),{"Date.1.1", "Date.1.2", "Date.2"},Combiner.CombineTextByDelimiter(".", QuoteStyle.None),"Zusammengeführt"),
 
   #"Geänderter Typ2" = Table.TransformColumnTypes(#"Zusammengeführte Spalten",{{"Zusammengeführt", type date}})
in
    
#"Geänderter Typ2" 
Gruß Jörg

"Wer immer tut, was er schon kann, bleibt immer das, was er schon ist." - Henry Ford
Antwortento top
#5
Oder in RPP's Beispiel


PHP-Code:
=--TEXT(A1;"00.00.00"
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antwortento top
#6
(19.08.2019, 18:16)snb schrieb: Oder in RPP's Beispiel


PHP-Code:
=--TEXT(A1;"00.00.00"

Sicher..? Bei mir sähe das dann so aus..:

Arbeitsblatt mit dem Namen 'Tabelle1'
ABC
1Date
25031550315
3111219111219
4130515130515

ZelleFormel
C2=--TEXT(A2;"00.00.00")
Verwendete Systemkomponenten: [Windows (32-bit) NT 6.01] MS Excel 2010
Diese Tabelle wurde mit Tab2Html (v2.6.0) erstellt. ©Gerd alias Bamberg
Gruß Jörg

"Wer immer tut, was er schon kann, bleibt immer das, was er schon ist." - Henry Ford
Antwortento top
#7
Hallo Jörg,

evtl. spielen da ja noch die Ländereinstellungen eine Rolle.

Bei "normaler" deutschsprachigen Einstellungen  würde jedenfalls
PHP-Code:
=TEXT(A2;"00-00-00")+

mit entsprechenden Datumszellformat zum gewünschten führen.
Gruß Werner
.. , - ...
Antwortento top
#8
Hallo Werner, deine Variante passt super. Der TE hatte aber explizit nach eine Power Query Lösung gefragt...
Gruß Jörg

"Wer immer tut, was er schon kann, bleibt immer das, was er schon ist." - Henry Ford
Antwortento top
#9
Hallo,

eine weitere Power Query Variante, wo eine benutzerdefinierte Spalte mit folgendem Code angelegt wurde
und die sich auf die Spalte Datum bezieht, der das Quell-Datum in Textform enthält...


Code:
=Date.FromText(Text.Start([Datum],Number.IntegerDivide(Text.Length([Datum]),6,0)+1)&"."&Text.Range([Datum],Number.IntegerDivide(Text.Length([Datum]),6,0)+1,2)&"."&Text.End([Datum],2))


Gruß
Microsoft Excel Expert · Microsoft Most Valuable Professional (MVP) from 01/2011 - 06/2019
https://de.excel-translator.de :: Online Excel-Formel-Übersetzer :: Alle Übersetzungen der Excel Funktionen & Fehlerwerte
Antwortento top
#10
Natürlich hat =--TEXT(A1;"00.00.00") hier (in den Niederlanden) nicht funktioniert.
Und natürlich hat =--TEXT(A1;"00-00-00") wohl funktioniert weil wir hier immer - als Trennungszeichen benützen.


Ich meinte meine Deutsche Freunde helfen zu können durch die übersetzung im Deutschen Datumsformat ohne das selbst testen zu können..

Erstaunlicherweise funktioniert weder "00.00.00' noch "00/00/00" (das 'internationale' Windows Format für Daten).

Ich stimme noch immer RPP zu das Powerquery hier am wenigsten etwas 'overdone' sei.
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antwortento top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste