mananthakore
Hola chicos,
Soy bastante nuevo en este PowerBI Desktop. Estoy tratando de agregar una nueva columna con una declaración compleja SI Y O.
Estoy obteniendo un resultado del 90% de esta fórmula, pero una condición simplemente no parece funcionar y no tengo idea de por qué.
aquí está la fórmula:
Costo presupuestado = IF (right (vTransactionHistoryAlt_FMInc[Last 4 Digit], 1) = «1» && vTransactionHistoryAlt_FMInc[Site]= «3450» || vTransactionHistoryAlt_FMInc[Site]= «3240» || vTransactionHistoryAlt_FMInc[Site]= «3530», «1499», if (right (vTransactionHistoryAlt_FMInc[Last 4 Digit], 1) = «1» && vTransactionHistoryAlt_FMInc[Site]= «3250» || vTransactionHistoryAlt_FMInc[Site]= «3580» || vTransactionHistoryAlt_FMInc[Site]= «3500» || vTransactionHistoryAlt_FMInc[Site]= «3310», «881», IF (right (vTransactionHistoryAlt_FMInc[Last 4 Digit], 1) = «1», «227», IF (right (vTransactionHistoryAlt_FMInc[Last 4 Digit], 1) = «2» && vTransactionHistoryAlt_FMInc[Site]= «3450» || vTransactionHistoryAlt_FMInc[Site]= «3240» || vTransactionHistoryAlt_FMInc[Site]= «3530», «5377», IF (derecha (vTransactionHistoryAlt_FMInc[Last 4 Digit], 1) = «2» && vTransactionHistoryAlt_FMInc[Site]= «3250» || vTransactionHistoryAlt_FMInc[Site]= «3580» || vTransactionHistoryAlt_FMInc[Site]= «3500» || vTransactionHistoryAlt_FMInc[Site]= «3310», «3048», «262»)))))
Todos mis criterios se están cumpliendo, excepto en los casos en los que en la 5ª declaración IF, sigue obteniendo un resultado basado en el 4º criterio, como si la 5ª declaración IF no existiera.
¿Pueden ayudarlo a descubrir qué está mal con la quinta declaración IF, es lo mismo que la primera, la segunda y la tercera y la cuarta, funcionan bien?
Gracias por adelantado
v-yuezhe-msft
Hola @mananthakore,
No estoy seguro de cuáles son sus datos de muestra y cuál es su resultado esperado.
Utilice el siguiente DAX para calcular el costo presupuestado y verifique si obtiene el resultado deseado
Budgeted Cost = IF(right(vTransactionHistoryAlt_FMInc[Last 4 Digit],1)= "1" && (vTransactionHistoryAlt_FMInc[Site]="3450" || vTransactionHistoryAlt_FMInc[Site]="3240" || vTransactionHistoryAlt_FMInc[Site]="3530" ),"1499", if(right(vTransactionHistoryAlt_FMInc[Last 4 Digit],1)="1" && (vTransactionHistoryAlt_FMInc[Site]="3250" || vTransactionHistoryAlt_FMInc[Site]="3580" || vTransactionHistoryAlt_FMInc[Site]="3500" || vTransactionHistoryAlt_FMInc[Site]="3310") ,"881", IF(right(vTransactionHistoryAlt_FMInc[Last 4 Digit],1)= "1", "227", IF(right(vTransactionHistoryAlt_FMInc[Last 4 Digit],1)= "2" && (vTransactionHistoryAlt_FMInc[Site]="3450" || vTransactionHistoryAlt_FMInc[Site]="3240" || vTransactionHistoryAlt_FMInc[Site]="3530" ),"5377", IF(right(vTransactionHistoryAlt_FMInc[Last 4 Digit],1)= "2" && (vTransactionHistoryAlt_FMInc[Site]="3250" || vTransactionHistoryAlt_FMInc[Site]="3580" || vTransactionHistoryAlt_FMInc[Site]="3500" || vTransactionHistoryAlt_FMInc[Site]="3310" ),"3048", "262")))))
Gracias,
Lydia
v-yuezhe-msft
Hola @mananthakore,
No estoy seguro de cuáles son sus datos de muestra y cuál es su resultado esperado.
Utilice el siguiente DAX para calcular el costo presupuestado y verifique si obtiene el resultado deseado
Budgeted Cost = IF(right(vTransactionHistoryAlt_FMInc[Last 4 Digit],1)= "1" && (vTransactionHistoryAlt_FMInc[Site]="3450" || vTransactionHistoryAlt_FMInc[Site]="3240" || vTransactionHistoryAlt_FMInc[Site]="3530" ),"1499", if(right(vTransactionHistoryAlt_FMInc[Last 4 Digit],1)="1" && (vTransactionHistoryAlt_FMInc[Site]="3250" || vTransactionHistoryAlt_FMInc[Site]="3580" || vTransactionHistoryAlt_FMInc[Site]="3500" || vTransactionHistoryAlt_FMInc[Site]="3310") ,"881", IF(right(vTransactionHistoryAlt_FMInc[Last 4 Digit],1)= "1", "227", IF(right(vTransactionHistoryAlt_FMInc[Last 4 Digit],1)= "2" && (vTransactionHistoryAlt_FMInc[Site]="3450" || vTransactionHistoryAlt_FMInc[Site]="3240" || vTransactionHistoryAlt_FMInc[Site]="3530" ),"5377", IF(right(vTransactionHistoryAlt_FMInc[Last 4 Digit],1)= "2" && (vTransactionHistoryAlt_FMInc[Site]="3250" || vTransactionHistoryAlt_FMInc[Site]="3580" || vTransactionHistoryAlt_FMInc[Site]="3500" || vTransactionHistoryAlt_FMInc[Site]="3310" ),"3048", "262")))))
Gracias,
Lydia
himanshu56
Hola @mananthakore
Es muy difícil leer su fórmula con varios si.
Le aconsejaría que utilice SWITCH dax en lugar de IF.
SWITCH( TRUE() ,<boolean expression>, <result if true> ,<boolean expression>, <result if true> , ..., ... ,<else condition - no trues above> )
Para saber más sobre cómo usar SWITCH, consulte el siguiente enlace:
https://powerpivotpro.com/2015/03/the-diabolical-genius-of-switch-true
Gracias,
Himanshu