Clever-Excel-Forum

Normale Version: Text zu Datum via Power Query
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
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
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)
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
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" 
Oder in RPP's Beispiel


PHP-Code:
=--TEXT(A1;"00.00.00"
(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
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.
Hallo Werner, deine Variante passt super. Der TE hatte aber explizit nach eine Power Query Lösung gefragt...
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ß
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.
Seiten: 1 2