cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Syndicate_Admin
Administrator
Administrator

Convertir texto dd-mm-aaaa-hh-mm a fecha/hora

Hola

Un poco nuevo en BI todavía y en ejecución en lo que es probablemente una solución fácil.


Estoy tratando de convertir un texto que está en dd-mm-aaaa-hh-mm en una fecha / hora. He intentado dividir columnas por delimitador y caracteres, etc. Soy capaz de obtener la fecha de salida, pero can't parecer para obtener fecha y hora.

es decir, 01-01-2021-07-00 a 01/01/2021 07:00

Cualquier guía apreciada.

Gracias

1 ACCEPTED SOLUTION
Syndicate_Admin
Administrator
Administrator

Hay @NiugeS

Por favor, intente usar el código M a continuación, donde Source sería su origen, y reemplace los nombres de columna por el nombre de la columna. Si no puede cambiarlos, utilice este código en una nueva consulta y consulte los pasos que tomé para obtener de dd-mm-aaaa-hh-mm a lo que desea.

Dejar
Source: Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMjDUBSIjAyNDXUNjXUNTpdhYAA-", BinaryEncoding.Base64), Compression.Deflate)), deje _t ((tipo de texto anulable) [Serialized.Text ? true]) en la tabla de tipos [Column1 _t )
"Dividir columna por posición" ? Table.SplitColumn(Source, "Column1", Splitter.SplitTextByPositions('0, 10', false), ''Column1.1', 'Column1.2''),
"Tipo de cambio" - Table.TransformColumnTypes('Dividir columna por posición",'Column1.1','' tipo date', ''Column1.2', escriba text'),
"Texto extraído después del delimitador" - Table.TransformColumns('Tipo cambiado',''Column1.2'', cada Text.AfterDelimiter(_, "-"), escriba text'),
"Valor reemplazado" - Table.ReplaceValue(-"Texto extraído después del delimitador","-",":",Replacer.ReplaceText,'Column1.2')),
"Changed Type1" á Table.TransformColumnTypes('Valor reemplazado','Column1.2', tiempo de tipo'),
"Columnas combinadas" á "Columnas combinadas" - Table.CombineColumns(Table.TransformColumnTypes('"Changed Type1",'Column1.1',type text', ''Column1.2','' tipo text', 'en-US'"),'Column1.1', 'Column1.2'','Combinador.CombineTextByDelimiter("" ", QuoteStyle.None),"Merged)"Merged
"Changed Type2" á Table.TransformColumnTypes(''Columnas combinadas',''Combinado','
En
"Tipo cambiado2"

View solution in original post

3 REPLIES 3
Syndicate_Admin
Administrator
Administrator

Hola @NiugeS

Para un formato inicial de 01-01-2021-07-00 debe transformarse a 01-01-2021 07:00 entonces puede cambiar el tipo a la fecha/hora. En la consulta de energía probablemente hay una manera eficiente de hacer esto reemplazando el 3er "-" con un " " y 4o con un ":"

Todavía estoy aprendiendo funciones de texto para hacer dentro de una columna, pero se puede utilizar a continuación para separar en dos columnas y formatear una como fecha y la otra como tiempo.

Espero que te ayude.

let
    Source = Excel.Workbook(File.Contents("C:\table.xlsx"), null, true),
    Sheet1_Sheet = Source{[Item="Sheet1",Kind="Sheet"]}[Data],
    #"Promoted Headers" = Table.PromoteHeaders(Sheet1_Sheet, [PromoteAllScalars=true]),
    #"Changed Type" = Table.TransformColumnTypes(#"Promoted Headers",{{"Initial", type text}, {"Datetime", type datetime}}),
    #"Split Column by Position" = Table.SplitColumn(#"Changed Type", "Initial", Splitter.SplitTextByRepeatedLengths(11), {"Initial.1", "Initial.2"}),
    #"Changed Type1" = Table.TransformColumnTypes(#"Split Column by Position",{{"Initial.1", type text}, {"Initial.2", type text}}),
    #"Replaced Value" = Table.ReplaceValue(#"Changed Type1","-",":",Replacer.ReplaceText,{"Initial.2"}),
    #"Extracted First Characters" = Table.TransformColumns(#"Replaced Value", {{"Initial.1", each Text.Start(_, 10), type text}}),
    #"Changed Type2" = Table.TransformColumnTypes(#"Extracted First Characters",{{"Initial.1", type date}})
in
    #"Changed Type2"

Syndicate_Admin
Administrator
Administrator

Hay @NiugeS

No es necesario dividir columnas. ya sea encubierto en el escritorio de Power bi o transformarlo en Power Query

Syndicate_Admin
Administrator
Administrator

Hay @NiugeS

Por favor, intente usar el código M a continuación, donde Source sería su origen, y reemplace los nombres de columna por el nombre de la columna. Si no puede cambiarlos, utilice este código en una nueva consulta y consulte los pasos que tomé para obtener de dd-mm-aaaa-hh-mm a lo que desea.

Dejar
Source: Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMjDUBSIjAyNDXUNjXUNTpdhYAA-", BinaryEncoding.Base64), Compression.Deflate)), deje _t ((tipo de texto anulable) [Serialized.Text ? true]) en la tabla de tipos [Column1 _t )
"Dividir columna por posición" ? Table.SplitColumn(Source, "Column1", Splitter.SplitTextByPositions('0, 10', false), ''Column1.1', 'Column1.2''),
"Tipo de cambio" - Table.TransformColumnTypes('Dividir columna por posición",'Column1.1','' tipo date', ''Column1.2', escriba text'),
"Texto extraído después del delimitador" - Table.TransformColumns('Tipo cambiado',''Column1.2'', cada Text.AfterDelimiter(_, "-"), escriba text'),
"Valor reemplazado" - Table.ReplaceValue(-"Texto extraído después del delimitador","-",":",Replacer.ReplaceText,'Column1.2')),
"Changed Type1" á Table.TransformColumnTypes('Valor reemplazado','Column1.2', tiempo de tipo'),
"Columnas combinadas" á "Columnas combinadas" - Table.CombineColumns(Table.TransformColumnTypes('"Changed Type1",'Column1.1',type text', ''Column1.2','' tipo text', 'en-US'"),'Column1.1', 'Column1.2'','Combinador.CombineTextByDelimiter("" ", QuoteStyle.None),"Merged)"Merged
"Changed Type2" á Table.TransformColumnTypes(''Columnas combinadas',''Combinado','
En
"Tipo cambiado2"

View solution in original post

Helpful resources

Announcements
PBI User Groups

Welcome to the User Group Public Preview

Check out new user group experience and if you are a leader please create your group!

MBAS Attendee Badge

Claim Your Badge & Digital Swag!

Check out how to claim yours today!

secondImage

Are You Ready?

Test your skills now with the Cloud Skills Challenge.

Top Solution Authors