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

dividir columna para obtener sólo enteros

Hola a todos,

Espero que todos estén bien. Necesito tu ayuda en mi consulta de datos. Tengo una columna llamada ABC con datos de la siguiente manera:

Ravi-1

Syntel-42

Phoenix-34

Consulta-67
Carga...

Consulta manipulada

Central

Ahora, quiero obtener una columna con solo números (presente al final). para valores sin entero puedo tener 0. Lo intenté con la columna dividida, pero como los datos no están en el formato adecuado no ayuda.

Además, Mquery no puedo tocar.

Por favor, proporcione una buena solución.

Gracias

1 ACCEPTED SOLUTION
v-alq-msft
Community Support
Community Support

Hola, @vamshik153

Me gustaría sugerirle que use Power Query. Creé datos para reproducir tu escenario.

Mesa:

b1.png

Puede agregar una nueva columna personalizada con la siguiente fórmula.

= Table.AddColumn(#"Changed Type","Result",each if Text.Length (Text.TrimStart([ABC],{"a".."z","A".."Z"}&{"-","."}))=0 then 0 else Number.FromText(Text.TrimStart([ABC],{"a".."z","A".."Z"}&{"-","."})) )

Aquí están mis códigos en 'editor avanzado'.

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WCkosy9Q1VIrViVYKrswrSc3RNTEC8wIy8lPzMit0jU3A3MDS1KJKXTNzMMcnPzElMy9dT08PSc43MS+zoDQnsSQ1BSyanJpXUpSYoxQbCwA=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [ABC = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"ABC", type text}}),
    Custom1 = Table.AddColumn(#"Changed Type","Result",each if Text.Length (Text.TrimStart([ABC],{"a".."z","A".."Z"}&{"-","."}))=0 then 0 else Number.FromText(Text.TrimStart([ABC],{"a".."z","A".."Z"}&{"-","."})) )
in
    Custom1

Resultado:

b2.png

Saludos

Allan

Si este post ayuda,entonces por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

View solution in original post

3 REPLIES 3
v-alq-msft
Community Support
Community Support

Hola, @vamshik153

Me gustaría sugerirle que use Power Query. Creé datos para reproducir tu escenario.

Mesa:

b1.png

Puede agregar una nueva columna personalizada con la siguiente fórmula.

= Table.AddColumn(#"Changed Type","Result",each if Text.Length (Text.TrimStart([ABC],{"a".."z","A".."Z"}&{"-","."}))=0 then 0 else Number.FromText(Text.TrimStart([ABC],{"a".."z","A".."Z"}&{"-","."})) )

Aquí están mis códigos en 'editor avanzado'.

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WCkosy9Q1VIrViVYKrswrSc3RNTEC8wIy8lPzMit0jU3A3MDS1KJKXTNzMMcnPzElMy9dT08PSc43MS+zoDQnsSQ1BSyanJpXUpSYoxQbCwA=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [ABC = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"ABC", type text}}),
    Custom1 = Table.AddColumn(#"Changed Type","Result",each if Text.Length (Text.TrimStart([ABC],{"a".."z","A".."Z"}&{"-","."}))=0 then 0 else Number.FromText(Text.TrimStart([ABC],{"a".."z","A".."Z"}&{"-","."})) )
in
    Custom1

Resultado:

b2.png

Saludos

Allan

Si este post ayuda,entonces por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

rajulshah
Super User
Super User

Hola @vamshik153,

Como usted dijo que no puede tocar MQuery, he intentado crear una columna calculada como se muestra a continuación:

Last Integer = 
VAR IfExists = SEARCH("-",SplitColumns[Value],1,-1)
VAR TotalLength = LEN(SplitColumns[Value])
VAR SplitInteger = IF(IfExists>0,RIGHT(SplitColumns[Value],TotalLength-IfExists),"0")
RETURN IFERROR(INT(SplitInteger),-2)

Por favor, vea el resultado a continuación:
splitcolumns.PNG

Espero que esto ayude.

Anonymous
Not applicable

¿Funcionaría esto?

Dejar
Fuente: Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WCkosy9Q1VIrViVYKrswrSc3RNTEC8wIy8lPzMit0jU3A3MDS1KJKXTNzMMcnPzElMy9dT08PSc43MS+zoDQnsSQ1BSyanJpXUpSYoxQbCwA", BinaryEncoding.Base64), Compression.Deflate)), let _t á ((texto de tipo) meta [Serialized.Text ? true]) en la tabla de tipos [Column1 - _t]),
"Texto insertado después del delimitador" - Table.AddColumn(Source, "Text After Delimiter", cada Text.AfterDelimiter([Column1], "-", ?0, RelativePosition.FromEnd), texto de tipo),
"Changed Type1" ? Table.TransformColumnTypes("Texto insertado después del delimitador", "Texto después del delimitador", Int64.Type, Int64.Type, Int64.Type, Int64,Type, Int64,Type, Int64,Type, Int64,Type, Int64,Type, Int64,Type, Int64,Type, Int64,Type, Int64,Type, Int64,Type, Int64,Type, Int64
"Errores reemplazados" - Tabla.ReplaceErrorValues("Changed Type1", "Texto después del delimitador", 0o)
En
"Errores reemplazados"

Así que primero tomo la parte después del primer delimitador (-) a partir de la derecha. Luego conseguiré una columna con números, y algunos con palabras. Luego convierto a números enteros, lo que dará lugar a errores para las cadenas. Luego reemplazo los errores con un 0, y voila.

Puede haber una mejor manera de hacer esto, pero esto parece funcionar hasta ahora.

Jaap

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.