Forum Discussion
Funciones IF con muchas condiciones
DAX tiene una función SWITCH que es mucho más limpia y fácil de usar que anidar múltiples instrucciones IF.
La sintaxis básica es:
SWITCH(, , [, , ]…[, ])
Entonces, en su caso, sería algo como esto:
OverallProjectScore = SWITCH(
TRUE(),
AND([Client Satisfaction]=1, AND( [Leadership]=1, [Estimation, Planning & Timelines] = 1 )),1,
AND( [Leadership] = 1, [Estimation, Planning & Timelines] = 1 ), 1,
999 )
Acabo de hacer sus dos primeras condiciones, de lo contrario 999 como marcador de posición a medida que completa las otras condiciones.
La condición promedio agrega cierta complejidad adicional. Imaginamos que podemos llegar a eso una vez que se sienta cómodo con esta primera parte.
Espero que esto te ponga en marcha.
Saludos
- Syndicate_Admin4 years ago
Administrator
Muchas gracias por la ayuda. Así que he estado jugando con él, y sigo recibiendo un error que dice "Token Eof esperado".
Aquí está el código:
OverallProjectScore = SWITCH(
VERDADERO(),
AND([[#"SATISFACCIÓN Y VALOR DEL CLIENTE"]]=1, AND([LIDERAZGO]=1, [#"ESTIMACIÓN, PLANIFICACIÓN Y PLAZOS"] =1)),1, Y([LIDERAZGO]=1,[#"ESTIMACIÓN, PLANIFICACIÓN Y PLAZOS"]=1)),1,AND([[#"ESTIMACIÓN, PLANIFICACIÓN Y PLAZOS"]]=1, Y([[#"SATISFACCIÓN Y VALOR DEL CLIENTE"]]=1)),1,Y([LIDERAZGO]=1, Y([#"SOLUCIÓN Y ENTREGABLES"]=1,[ENFOQUE]=1,[#"ESTIMACIÓN, PLANIFICACIÓN Y PLAZOS"]=1,[#"MONITOR Y CONTROL"]=1, [DOTACIÓN DE PERSONAL]=1, [#"SATISFACCIÓN Y VALOR DEL CLIENTE"]=1)),1Traté de duplicar tu lógica de cómo creaste las primeras 2 condiciones, pero algo va mal ...
- Syndicate_Admin4 years ago
Administrator
Has traído personajes adicionales por alguna razón.
1) En su primera condición, deshágase del corchete doble, las comillas dobles y el signo "#". No tengo esto en ninguna parte de mi ejemplo... no sé cómo o por qué terminaron allí.
Todos los nombres de sus columnas deben decir [YourColumnName], es decir, [LIDERAZGO].
Haz estas correcciones y vamos a partir de ahí.
- Syndicate_Admin4 years ago
Administrator
Esos caracteres se agregan si selecciono la columna haciendo doble clic en la sección "columnas disponibles". Los he eliminado.
Ahora recibo el error "indentifier no válido" y la palabra "CLIENT" se está resaltando (vea la captura de pantalla a continuación).
Aquí está el código:
= INTERRUPTOR(
VERDADERO(),
AND([SATISFACCIÓN Y VALOR DEL CLIENTE]=1, AND([LIDERAZGO]=1, [ESTIMACIÓN, PLANIFICACIÓN Y PLAZOS]=1)),1, Y([LIDERAZGO]=1,[ESTIMACIÓN, PLANIFICACIÓN Y PLAZOS]=1)),1,AND([ESTIMACIÓN, PLANIFICACIÓN Y PLAZOS]=1, Y([SATISFACCIÓN Y VALOR DEL CLIENTE]=1)),1,Y([LIDERAZGO]=1, Y([SOLUCIÓN Y ENTREGABLES]=1,[ENFOQUE]=1,[ESTIMACIÓN, PLANIFICACIÓN Y PLAZOS]=1,[MONITOR & CONTROL]=1, [DOTACIÓN DE PERSONAL]=1,[SATISFACCIÓN Y VALOR DEL CLIENTE]=1)),1