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
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)
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)
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
stolzes Mitglied im ----Excel-Verein
Freund einer excellenten Power Query-Abfrage
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
Top
#6
(19.08.2019, 19: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
stolzes Mitglied im ----Excel-Verein
Freund einer excellenten Power Query-Abfrage
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
.. , - ...
Top
#8
Hallo Werner, deine Variante passt super. Der TE hatte aber explizit nach eine Power Query Lösung gefragt...
Gruß Jörg
stolzes Mitglied im ----Excel-Verein
Freund einer excellenten Power Query-Abfrage
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) :: 2011-2019 & 2020-2022 :: 10 Awards
https://de.excel-translator.de/translator :: Online Excel-Formel-Übersetzer :: Funktionen :: Fehlerwerte :: Argumente :: Tabellenbezeichner
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
Top


Gehe zu:


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