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.
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
Solved! Go to Solution.
Hola, @vamshik153
Me gustaría sugerirle que use Power Query. Creé datos para reproducir tu escenario.
Mesa:
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:
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.
Hola, @vamshik153
Me gustaría sugerirle que use Power Query. Creé datos para reproducir tu escenario.
Mesa:
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:
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.
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:
Espero que esto ayude.
¿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
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
2 | |
2 | |
2 | |
2 | |
1 |