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
Anonymous
Not applicable

Extraer texto

Hola, tengo algunas descripciones de productos conmigo, por ejemplo:

HP 16GB (1X16GB) 2RX4 PC3L-12800R
HP 16GB(1X16GB) 2RX4 PC3L-12800R
HPE 16GB 1RX4 PC4-2400T-R DIMM
16 GB PC4-2933 DE DOBLE RANGO X8 DDR4
8GB PC4-2933 SINGLE-RANK X8 DDR4
HPE 32GB DUAL RANK X4 DDR4-2933 DIM
64GB PC4-2666 V-R, REG SDRAM 2G X4
HP 32GB (1X32GB) 4RX4 PC3L-10600L 8.

Quiero extraer el tamaño de la memoria de estos, 32gb, 64gb y 16gb debe ser el resultado en estos casos.

Gracias

Priyanshu

1 ACCEPTED SOLUTION
Anonymous
Not applicable

Power Query, agregue una columna personalizada

Karlos_0-1595799384103.png

View solution in original post

8 REPLIES 8
andre
Memorable Member
Memorable Member

no está seguro de si está intentando implementar una columna de una medida, pero este es el pseudocódigo para extraer memoria de las cadenas:

Memoria ?
-- reemplazar la cadena "HP 16GB (1X16GB) 2RX4 PC3L-12800R" con su nombre de columna o valor seleccionado de esa columna
var GBStart á SEARCH("GB", "HP 16GB (1X16GB) 2RX4 PC3L-12800R", , 0)

retorno IF(GBStart á 0, BLANK(), MID("HP 16GB (1X16GB) 2RX4 PC3L-12800R", GBStart-2, 4))
lbendlin
Super User
Super User

Aquí hay una versión básica sin ninguna comprobación de errores. Agregue eso según sea necesario.

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("hY/LCsIwFER/ZejKQgN5EeKymhKLaSm3KoHS//8Nm8Sq4MLVLM65c5llqS4ThPEnHERMWUNS1JjOKjAhLedUrc3b+id1pUsUqpnUnN8YwfXDkJWMMzkqBXdvA6N2vCJaOEc6O/ZbmfvRh+5XSr+U3MzUgYJ1xq/qvjw0em8zxuDBqAF1HrOjdoD029G+L7dtA1PW0J+B3HAeYKt1fQI=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Column1 = _t]),
    #"Added Custom" = Table.AddColumn(Source, "Custom", each 
    let g = Text.PositionOf([Column1],"GB"),
    sp = Text.PositionOf([Column1]," "),
    st = if sp<g then Text.Range([Column1],sp+1,g-sp+1) else Text.Start([Column1],g+2) 
in 
    st
)
in
    #"Added Custom"
az38
Community Champion
Community Champion

@Priyanshu0727

Para DAX puede utilizar la columna calculada

Memory Column = 
VAR GbStart = SEARCH("GB", [Column1])
VAR PrevSpace = SEARCH(" ", [Column1]) + 1
VAR StartPosition = IF(PrevSpace > GbStart, 1, PrevSpace)
VAR TextLen = GbStart - StartPosition + 2
RETURN
IF(StartPosition = 0, LEFT([Column1], TextLen), MID([Column1], StartPosition, TextLen ))

do not hesitate to give a kudo to useful posts and mark solutions as solution
LinkedIn
mahoneypat
Employee
Employee

Puede agregar una columna personalizada en el editor de consultas con esta fórmula. Funcionó con los datos de ejemplo (reemplazar [TextColumn] con el nombre real de la columna), pero es posible que tenga que adaptarlo, si hay escenarios no cubiertos.

• List.First(List.Transform(List.Select(Text.Split([TextColumn], " "), each Text.Contains(_, "GB")), cada Text.BeforeDelimiter(_, "GB") y "GB") y "GB"), ", ")

Si esto funciona para usted, márquelo como la solución. Los elogios también son apreciados. Por favor, avísame si no.

saludos

palmadita





Did I answer your question? Mark my post as a solution! Kudos are also appreciated!

To learn more about Power BI, follow me on Twitter or subscribe on YouTube.


@mahoneypa HoosierBI on YouTube


Anonymous
Not applicable

Power Query, agregue una columna personalizada

Karlos_0-1595799384103.png

Anonymous
Not applicable

Hola Karlos,

Gracias por esta solución, funcionó como un encanto. El único desafío que estoy enfrentando aquí es la variación de fuente, observé que hay pocas descripciones que tienen 16Gb, 16 GB, 16Gb y 16gb como tamaño de memoria. Por ahora he añadido todos estos escenarios como condición en la columna, pero sería halpful si puedo hacer lo mismo inmaterialista de fuente y espacio.

Gracias

Anonymous
Not applicable

Hola Amigo,

Podrías ir a Transformar, formato, CAPITALISE. Esto haría que todo en esa columna en mayúsculas, entonces supongo que sólo tendría que agregar reglas adicionales para tener en cuenta los espacios.

Karlos_0-1595836472922.png

• Table.AddColumn(-"Changed Type", "Custom", each if Text.Contains([Column1], "16GB") y luego "16GB" else if Text.Contains([Column1], "16 GB") y luego "16GB" else if Text.Contains([Column1], "32GB") y luego "32GB" else if Text.Contains([Column1], "32 GB") y luego "32GB" else if Text.Contains([Column1], "64GB") y luego "64GB" else if Text.Contains([Column1], "64 GB") y luego "64GB" else null)

Hola @Priyanshu0727

Puede utilizar buscar y reemplazar para hacer todos los GB en Capital.

Una vez que todos son Capital GB

A continuación, busque 16 GB y sustitúyalo por 16 GB.

saludos

Harsh Nathani

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.