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.
Buenas tardes
Soy nuevo miembro de la comunidad de PBI, pero he estado trabajando con Power BI durante un par de años en el trabajo. Finalmente me he encontrado con algo a lo que no pude encontrar una respuesta a través de la búsqueda de los foros. Mi problema es el siguiente:
Tengo un gran número de dispositivos informáticos en toda mi organización, 15.000 euros. Los nombres de estas máquinas reflejan en qué región se encuentran (tenemos 147 regiones). Lo que estoy intentando hacer es crear una columna que examina el nombre del equipo y usa algo como una instrucción switch para dar un resultado del código de región. El desafío es que a veces, debido a algunas convenciones de nomenclatura anteriores, el nombre de la máquina puede contener un código numérico en lugar del código alfa para la región, por lo que estoy tratando de ver si básicamente puedo almacenar los valores de una columna en una tabla y usar los que están dentro de una fórmula para calcular la nueva columna.
Estos son algunos ejemplos de lo que tengo y lo que estoy tratando de obtener. En la Tabla1, la"Región" es lo que estoy tratando de conseguir con la forumula.
Tabla1
Tabla1
|
Tabla2
|
Lo que estoy intentando hacer con la fórmula es mirar ComputerName en Table1 y si encuentra una secuencia de letras que coincide con un RegionCode en Table2, coloca ese código en la columna De región, de lo contrario, si una secuencia numérica coincide con RegionNumber, úsela para obtener el valor de RegionCode y agregarlo a la columna. No estoy en contra de usar varias columnas si es necesario, pero mi método actual usaría una instrucción Switch con más de 500 casos, y esperaba que hubiera una manera más eficiente de hacerlo. Aquí está la fórmula que tengo hasta ahora, gracias a @v-yuta-msft en un post anterior.
Region =
SWITCH(
TRUE(),
ISERROR( FIND( "ABCD", 'Table1'[ComputerName])) <> TRUE(), "ABCD",
ISERROR( FIND( "1234", 'Table1'[ComputerName])) <> TRUE(), "ABCD",
ISERROR( FIND( "DEFG", 'Table1'[ComputerName])) <> TRUE(), "DEFG",
ISERROR( FIND( "4567", 'Table1'[ComputerName])) <> TRUE(), "DEFG",
ISERROR( FIND( "GHIK", 'Table1'[ComputerName])) <> TRUE(), "GHIK",
ISERROR( FIND( "26381", 'Table1'[ComputerName])) <> TRUE(), "GHIK",
...
Como puede ver, hacer esto para cada valor que tengo en Table2 crearía una fórmula SWITCH() muy larga. Esperaba encontrar algo como lo que he hecho en PowerShell donde puedo almacenar o leer los valores en Table2 y usar un IN ('Table1'[ComputerName]) o algo similar.
Cualquier ayuda es muy apreciada!
Hola @Semipro211
Consulte el archivo adjunto con una solución en Power Query
Hola @Mariusz
Gracias por tomarse el tiempo para responder. Me sorprende lo simple que es el código M para hacer esto! Aunque me encontré con un problema. Cuando intento duplicar este código en mi propio proyecto pbix, mi columna personalizada expandida me da valores nulos. Debido a la naturaleza sensible de la información real con la que estoy trabajando, no puedo publicar mi archivo pbix, pero al menos puedo dar la estructura de las dos tablas reales con sus nombres de columna reales y algunos datos ficticios. Todas las columnas son columnas de texto.
AD Completado
Cn |
TWWSOV00985231N |
LWYKTC21443004L |
EXANNZ20187333M |
NCOM20071133W |
CLC_CSI
Clc | Csi |
985 | WSOV |
21443 | YKTC |
20187 | ANNZ |
20071 | ANNZ |
let
(ommitted for brevity)
#"Added Custom" = Table.AddColumn(#"Changed Type", "Custom", each
Table.SelectRows(
CLC_CSI, (b) => Text.Contains( [CN], b[CLC] )
)
),
#"Expanded Custom" = Table.ExpandTableColumn(#"Added Custom", "Custom", {"CSI"}, {"CSI"})
in
#"Expanded Custom"
No recibo ningún error, pero cada valor es null.
@Mariusz Permítanme corregirme, debo haber malinterpretado parte del código M en su solución, cuando cambié b[CLC] a b[CSI], la columna ahora funciona según lo esperado/esperado.
¡Gracias!
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 | |
1 | |
1 | |
1 | |
1 |
User | Count |
---|---|
2 | |
2 | |
2 | |
2 | |
1 |