Forum Discussion
Funciones IF con muchas condiciones
Disculpas por eso (todavía tratando de aprender PowerBI).
He seguido sus instrucciones y recibo este error:
" La sintaxis de ',' es incorrecta. (DAX(SWITCH(TRUE(),AND([CUSTOMER SATISFACTION & VALUE]=1, AND([LEADERSHIP]=1, [ESTIMATION, PLANNING & TIMELINES]=1)),1, AND([LEADERSHIP]=1,[ESTIMATION, PLANNING & TIMELINES]=1)),1,AND([ESTIMATION, PLANNING & TIMELINES]=1, AND([CUSTOMER SATISFACTION & VALUE]=1)),1,AND([LEADERSHIP]=1, AND([SOLUTION & DELIVERABLES]=1,[APPROACH]=1,[ESTIMATION, PLANNING & TIMELINES]=1,[MONITOR & CONTROL]=1, [DOTACIÓN DE PERSONAL]=1,[SATISFACCIÓN Y VALOR DEL CLIENTE]=1)),1)). "
No hay necesidad de disculparse. Al menos ahora estamos en el lugar correcto.
Por favor, pegue lo que tiene en la barra de fórmulas para ayudarme a ayudarlo mejor.
Use el "<>" anterior para pegarlo como código. Más fácil verlo de esta manera.
...
- Syndicate_Admin4 years ago
Administrator
@rsbin Vea a continuación el código:OverallProjectScore = SWITCH( TRUE(), AND([CLIENT SATISFACTION & VALUE]=1, AND([LEADERSHIP]=1, [ESTIMATION, PLANNING & TIMELINES]=1)),1, AND([LEADERSHIP]=1,[ESTIMATION, PLANNING & TIMELINES]=1)),1,AND([ESTIMATION, PLANNING & TIMELINES]=1, ([CLIENT SATISFACTION & VALUE]=1)),1,([LEADERSHIP]=1,([SOLUTION & DELIVERABLES]=1,[APPROACH]=1,[ESTIMATION, PLANNING & TIMELINES]=1,[MONITOR & CONTROL]=1,[STAFFING]=1,[CLIENT SATISFACTION & VALUE]=1)),1 - Syndicate_Admin4 years ago
Administrator
Mientras esperaba, veo un par de problemas.
Primero es entender la función AND.
Veo un par de problemas con el código.
Primero, debe comprender cómo funciona la función AND
https://docs.microsoft.com/en-us/dax/and-function-dax. Marque la página de Microsoft. Esto será útil. Por lo tanto, la función AND puede comparar solo 2 argumentos (es decir, columnas). Debido a que su primera condición tiene 3, tenemos que "anidarlos".
Primero estamos verificando [Liderazgo] y [Estimación]. Luego envuelvo otra declaración AND en torno a eso. Así que obtenemos la primera condición:
OverallProjectScore = SWITCH( TRUE(), AND([CLIENT SATISFACTION & VALUE]=1, AND([LEADERSHIP]=1, [ESTIMATION, PLANNING & TIMELINES]=1)),1, 999)Si solo hay dos condiciones, se ve así: eliminado un paréntesis adicional ")" :
AND([LEADERSHIP]=1,[ESTIMATION, PLANNING & TIMELINES]=1),1,Por lo tanto, ahora intentaré combinar esto por completo:
OverallProjectScore = SWITCH( TRUE(), AND([CLIENT SATISFACTION & VALUE]=1, AND([LEADERSHIP]=1, [ESTIMATION, PLANNING & TIMELINES]=1)),1, //First Condition compare 3 columns. AND([LEADERSHIP]=1,[ESTIMATION, PLANNING & TIMELINES]=1),1, //Second condition compares 2 columns AND([ESTIMATION, PLANNING & TIMELINES]=1,[CLIENT SATISFACTION & VALUE]=1),1, //Compares 2 columns AND([SOLUTION & DELIVERABLES]=1,AND([APPROACH]=1,AND([ESTIMATION, PLANNING & TIMELINES]=1,AND([MONITOR & CONTROL]=1,AND([STAFFING]=1,[CLIENT SATISFACTION & VALUE]=1))))),1, 999 )el "//" aparecerá como un comentario. Los tiré allí, como puede explicarlo mejor. La última declaración me tiene preocupado. Nunca he anidado tantas condiciones juntas. Veremos si esto funciona.