Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

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"

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.