Clever-Excel-Forum

Normale Version: Power Query: Formatierung von 'Time.From'
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,

in meinem aktuellen Projekt versuche ich einen 'Time.From'-Befehl dazu zu überreden, mir ein bestimmtes Format zu liefern.

Aktuell ergibt der Befehl, angewandt auf ein Feld, das Datum- und Zeit-angaben im Format "DD.MM.YYYY hh:mm:ss" enthält, nur Werte im Format "hh:mm" zurück.
Wie kann ich dem Time.From() mitteilen, dass er bitte Stunden, Minuten UND Sekunden liefern soll? Die µsoft-Webseiten, die ich dazu befragt habe, deuten an, dass man mit der Option 'Culture' auch ein Format mitgeben kann, aber ich habe dazu nix Brauchbares gefunden.

Weiß jemand dazu etwas Hilfreiches?

Danke,
RaiSta

P.S.: ich kann das Feld natürlich auch als Text am Leerzeichen trennen - aber hier würde ich gerne den Befehl Time.From() verwenden.
Hi,

Time.From erwartet ja als ersten Parameter einen time-Datentyp, aber so, wie es scheint übergibst Du einen Text. Den müsstest Du dann natürlich für die Übergabe in Stunden,Minuten und Sekunden zerlegen.  Generell würde ich aber die DatumsSTRING-Spalte in je eine separate Datums- und Zeitspalte zerlegen und diese dann auch entsprechend transponieren....
(29.08.2023, 16:10)Ralf A schrieb: [ -> ]Time.From erwartet ja als ersten Parameter einen time-Datentyp, aber so, wie es scheint übergibst Du einen Text. Den müsstest Du dann natürlich für die Übergabe in Stunden,Minuten und Sekunden zerlegen.  Generell würde ich aber die DatumsSTRING-Spalte in je eine separate Datums- und Zeitspalte zerlegen und diese dann auch entsprechend transponieren....

Nach meinem Verständnis erwartet Time.From eine Eingabe, die als Zeit-Angabe interpretiert werden kann, ob als Text oder z.B. DateTime-Wert (wie im konkreten Fall). Das macht die Time.From-Funktion auch zuverlässig - nur die Ausgabe (ohne Sekunden, nur Stunden:Minuten) stört mich. Daraus ergibt sich die von mir gestellte Frage, wie ich steuern kann, welches Format Time.From liefert.

Gruß und Dank,
RaiSta
Hallo RaiSta,

ich glaube, deine Beschreibung ist unbeabsichtigt etwas durcheinander. Time.From gibt nichts formatiertes zurück, sondern nur einen Wert vom Typ Time. Dieser hat immer Sekunden und hundertstel und tausendstel. Die Frage ist also nicht, wie du das Ergebnis formatierst, sondern wie die Eingabe konkret aussieht. Wenn es sich um einen Text handelt, der auch ein Datum enthält, musst du dies erst in ein wandelbares Format umwandeln (zum Beispiel DateTime):
Code:
= Table.AddColumn(Quelle, "Benutzerdefiniert", each Time.From(DateTime.From([Stempel])))
Alternativ kannst du den Datumsteil ignorieren indem du den Text splittest:
Code:
= Table.AddColumn(Quelle, "Benutzerdefiniert", each Time.From(Text.Split([Stempel]," "){2}))
Dass Sekunden verloren gehen, kann ich nicht nachvollziehen. Hast du vielleicht eine Beispieldatei dazu`?

Viele Grüße
derHöpp