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

Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!

Reply
timknox
Helper II
Helper II

Ayuda con la extracción de números de una cadena

¡Por favor, alguien puede ayudarme!

Tengo un origen de datos (adjunto) y una de las columnas tiene precios.

El problema que tengo es que en la cadena puede haber hasta unos 10 precios individuales que necesitan ser agregados juntos para dar el precio general.

Por ejemplo, en la línea 65, la cadena es:

a:6:'i:0;a:3:'s:8:"Cantidad";s:2:"38";s:4:"Rate";s:3:"3.2";s:8:8:8 "NetPrice";d:121.60000000000000008526512829121202304534912109375; i:1;a:3:'s:8:"Cantidad";s:2:"38";s:4:"Rate";s:4:"2.10";s:8:"NetPrice";d:79.799999999999997157829056959599256515029296875; i:2;a:3:'s:8:"Cantidad";s:2:"38";s:4:"Rate";s:3:"2.1";s:8:"Net Precio";d:79.799999999999997157829056959599256515029296875; i:3;a:3:'s:8:"Cantidad";s:2:"38";s:4:"Rate";s:3:"2.1";s:8:"Net Precio";d:79.799999999999997157829056959599256515029296875; i:4;a:3:'s:8:"Cantidad";s:2:"38";s:4:"Rate";s:3:"3.2";s:8:"NetPrice ";d:121.600000000000000008526512829121202304534912109375; i:5;a:3:'s:8:"Cantidad";s:2:"38";s:4:"Rate";s:3:"2.1";s:8:"Net Precio";d:79.79999999999997157829056959599256515029296875;

Lo que estoy buscando es una columna calculada que sumaría todas las cifras de 'NetPrice' higlighted en ROJO - por lo que la respuesta debe ser 562.40

No lo soy si esto es posible, pero pensé que preguntaría.

Gracias de antemano

1 ACCEPTED SOLUTION
pranit828
Community Champion
Community Champion

Hola @timknox

Tomé el mismo archivo un d creado th debajo del código M en Power Query Editor me dio la salida exacta que está buscando.

A continuación se muestra lo que hice, Crear una nueva tabla, asígnela Table_longText.

Asigne un nombre Long_text a la columna. Compruebe que todos los detalles son correctos como se indica en rojo a continuación.

Inserte el código Json (proporcionado como ejemplo) como los datos de Long_Text columna.

pranit828_0-1597856081464.png

Ya debería tener una tabla 'Table_longText' creada.

Vaya al editor de avances y pase el siguiente código.

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("zZIxDsIwDEXvkgNEjlMnsXsHBKxthwg6ZGGAMKCqdycpSwcWEBK1l/9tWXr6ctepKE6mJNBGsTLdJEivDvd4ySk/etXeBMvAhkU2RR5jHhdj61zjouvRbsz7azrV5VkMGu1gXYHQkcGAXHYIiBYask11wNZTOycxH0NUg9rAewrP2vO6vCFfCIAcU2lGKkxEgIzswgsCv0qiQPyQwW6AodnCR9Dfg5jVMDwB", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Long_Text = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Long_Text", type text}}),
    #"Split Column by Positions" = Table.SplitColumn(#"Changed Type", "Long_Text", Splitter.SplitTextByPositions({76, 126, 200, 249, 322, 371, 444, 493, 566, 616, 689, 738}), {"Long_Text.1", "Long_Text.2", "Long_Text.3", "Long_Text.4", "Long_Text.5", "Long_Text.6", "Long_Text.7", "Long_Text.8", "Long_Text.9", "Long_Text.10", "Long_Text.11", "Long_Text.12"}),
    #"Changed Type1" = Table.TransformColumnTypes(#"Split Column by Positions",{{"Long_Text.1", type text}, {"Long_Text.2", type text}, {"Long_Text.3", type text}, {"Long_Text.4", type text}, {"Long_Text.5", type text}, {"Long_Text.6", type text}, {"Long_Text.7", type text}, {"Long_Text.8", type text}, {"Long_Text.9", type text}, {"Long_Text.10", type text}, {"Long_Text.11", type text}, {"Long_Text.12", type text}}),
    #"Removed Columns" = Table.RemoveColumns(#"Changed Type1",{"Long_Text.2", "Long_Text.4", "Long_Text.6", "Long_Text.8", "Long_Text.10", "Long_Text.12"}),
    #"Changed Type2" = Table.TransformColumnTypes(#"Removed Columns",{{"Long_Text.11", type number}, {"Long_Text.9", type number}, {"Long_Text.7", type number}, {"Long_Text.5", type number}, {"Long_Text.3", type number}, {"Long_Text.1", type number}}),
    #"Added Custom" = Table.AddColumn(#"Changed Type2", "Total", each [Long_Text.1]+[Long_Text.3]+[Long_Text.5]+[Long_Text.7]+[Long_Text.9]+[Long_Text.11])
in
    #"Added Custom"

Obtendrá la siguiente salida en este caso.

pranit828_2-1597856521087.png

Ahora puede ocultar las otras columnas que no sean el total según sus necesidades.





PBI_SuperUser_Rank@1x.png


Hope it resolves your issue? 
Did I answer your question? Mark my post as a solution!

Appreciate your Kudos, Press the thumbs up button!!
Linkedin Profile

View solution in original post

3 REPLIES 3
pranit828
Community Champion
Community Champion

Hola @timknox

Tomé el mismo archivo un d creado th debajo del código M en Power Query Editor me dio la salida exacta que está buscando.

A continuación se muestra lo que hice, Crear una nueva tabla, asígnela Table_longText.

Asigne un nombre Long_text a la columna. Compruebe que todos los detalles son correctos como se indica en rojo a continuación.

Inserte el código Json (proporcionado como ejemplo) como los datos de Long_Text columna.

pranit828_0-1597856081464.png

Ya debería tener una tabla 'Table_longText' creada.

Vaya al editor de avances y pase el siguiente código.

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("zZIxDsIwDEXvkgNEjlMnsXsHBKxthwg6ZGGAMKCqdycpSwcWEBK1l/9tWXr6ctepKE6mJNBGsTLdJEivDvd4ySk/etXeBMvAhkU2RR5jHhdj61zjouvRbsz7azrV5VkMGu1gXYHQkcGAXHYIiBYask11wNZTOycxH0NUg9rAewrP2vO6vCFfCIAcU2lGKkxEgIzswgsCv0qiQPyQwW6AodnCR9Dfg5jVMDwB", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Long_Text = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Long_Text", type text}}),
    #"Split Column by Positions" = Table.SplitColumn(#"Changed Type", "Long_Text", Splitter.SplitTextByPositions({76, 126, 200, 249, 322, 371, 444, 493, 566, 616, 689, 738}), {"Long_Text.1", "Long_Text.2", "Long_Text.3", "Long_Text.4", "Long_Text.5", "Long_Text.6", "Long_Text.7", "Long_Text.8", "Long_Text.9", "Long_Text.10", "Long_Text.11", "Long_Text.12"}),
    #"Changed Type1" = Table.TransformColumnTypes(#"Split Column by Positions",{{"Long_Text.1", type text}, {"Long_Text.2", type text}, {"Long_Text.3", type text}, {"Long_Text.4", type text}, {"Long_Text.5", type text}, {"Long_Text.6", type text}, {"Long_Text.7", type text}, {"Long_Text.8", type text}, {"Long_Text.9", type text}, {"Long_Text.10", type text}, {"Long_Text.11", type text}, {"Long_Text.12", type text}}),
    #"Removed Columns" = Table.RemoveColumns(#"Changed Type1",{"Long_Text.2", "Long_Text.4", "Long_Text.6", "Long_Text.8", "Long_Text.10", "Long_Text.12"}),
    #"Changed Type2" = Table.TransformColumnTypes(#"Removed Columns",{{"Long_Text.11", type number}, {"Long_Text.9", type number}, {"Long_Text.7", type number}, {"Long_Text.5", type number}, {"Long_Text.3", type number}, {"Long_Text.1", type number}}),
    #"Added Custom" = Table.AddColumn(#"Changed Type2", "Total", each [Long_Text.1]+[Long_Text.3]+[Long_Text.5]+[Long_Text.7]+[Long_Text.9]+[Long_Text.11])
in
    #"Added Custom"

Obtendrá la siguiente salida en este caso.

pranit828_2-1597856521087.png

Ahora puede ocultar las otras columnas que no sean el total según sus necesidades.





PBI_SuperUser_Rank@1x.png


Hope it resolves your issue? 
Did I answer your question? Mark my post as a solution!

Appreciate your Kudos, Press the thumbs up button!!
Linkedin Profile
harshnathani
Community Champion
Community Champion

Hola @timknox ,

Vea si estas publicaciones le ayudan

https://community.powerbi.com/t5/Desktop/Extract-number-and-text-from-string/m-p/1190132

https://community.powerbi.com/t5/Desktop/Extract-the-number-and-text-from-String/m-p/399848

saludos
Harsh Nathani
¿He respondido a tu pregunta? ¡Marca mi puesto como una solución! Apreciar con un Kudos!! (Haga clic en el botón Pulgares arriba)

Helpful resources

Announcements
April AMA free

Microsoft Fabric AMA Livestream

Join us Tuesday, April 09, 9:00 – 10:00 AM PST for a live, expert-led Q&A session on all things Microsoft Fabric!

March Fabric Community Update

Fabric Community Update - March 2024

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

Top Solution Authors