Forum Discussion
Anonymous
4 years agoNot applicable
CONVERTING TABLEAU INTO DAX
Hello guys, just ignore the meaning of the attributes, I wanted to have a perspective on how I could write the same logic as I have below (Tableau) but using DAX, to implement on Power BI:
IF ([Cor PRTH] AND [Tipo Estação]='AUTO')
THEN 'Falta PRTH'
ELSEIF ([Tipo Estação]='ANEEL' OR [Tipo Estação]='SYNOP') AND
(([testeConsistencia] > 0 AND [Id Tpconsistmnem] =4) OR (ISNULL([PLMT])))
THEN 'Medição Nula'
ELSEIF ([PLMT] < 0 OR [PLMT] > 100) OR
([Tipo Estação] ='AUTO' AND ([PRTH] < 0 OR [PRTH] > 50))
THEN 'Consistência'
ELSE 'OK'
END
I've tried as below, but I'm getting a completely different result:
Verifica Cor = IF (
// Falta PRTH
tb_medicaoultimosdezdiasmeteo[registros_PRTH] < 24 && tb_medicaoultimosdezdiasmeteo[Tipo Estação (grupos)] = "AUTO", "Falta PRTH",
// Medição Nula
IF (tb_medicaoultimosdezdiasmeteo[Tipo Estação (grupos)] = "ANEEL" && tb_medicaoultimosdezdiasmeteo[testeConsistencia] > 0 && tb_medicaoultimosdezdiasmeteo[id_tpconsistmnem] = 4 || ISBLANK(tb_medicaoultimosdezdiasmeteo[PLMT]), "Medição Nula", IF (tb_medicaoultimosdezdiasmeteo[Tipo Estação (grupos)] = "SYNOP" && tb_medicaoultimosdezdiasmeteo[testeConsistencia] > 0 && tb_medicaoultimosdezdiasmeteo[id_tpconsistmnem] = 4 || ISBLANK(tb_medicaoultimosdezdiasmeteo[PLMT]), "Medição Nula",
// Consistencia, OK
IF (tb_medicaoultimosdezdiasmeteo[PLMT] < 0 || tb_medicaoultimosdezdiasmeteo[PLMT] > 100, "Consistencia", IF (tb_medicaoultimosdezdiasmeteo[Tipo Estação (grupos)] = "AUTO" && tb_medicaoultimosdezdiasmeteo[PRTH] < 0, "Consistencia", IF (tb_medicaoultimosdezdiasmeteo[Tipo Estação (grupos)] = "AUTO" && tb_medicaoultimosdezdiasmeteo[PRTH] > 50, "Consistencia", "OK"))))))
Anonymous Maybe:
IF ( [Cor PRTH] && [Tipo Estação]="AUTO", "Falta PRTH", IF ( ([Tipo Estação]="ANEEL" || [Tipo Estação]="SYNOP") && (([testeConsistencia] > 0 && [Id Tpconsistmnem] =4) || (ISBLANK([PLMT]), "Medição Nula", IF( ([PLMT] < 0 OR [PLMT] > 100) || ([Tipo Estação] ="AUTO" && ([PRTH] < 0 || [PRTH] > 50), "Consistência", "OK" ) ) )or a cleaner way might be:
SWITCH(TRUE(), [Cor PRTH] && [Tipo Estação]="AUTO", "Falta PRTH", ([Tipo Estação]="ANEEL" || [Tipo Estação]="SYNOP") && (([testeConsistencia] > 0 && [Id Tpconsistmnem] =4) || (ISBLANK([PLMT]), "Medição Nula", ([PLMT] < 0 OR [PLMT] > 100) || ([Tipo Estação] ="AUTO" && ([PRTH] < 0 || [PRTH] > 50), "Consistência", "OK" )
2 Replies
- Greg_DecklerCommunity Champion
Anonymous Maybe:
IF ( [Cor PRTH] && [Tipo Estação]="AUTO", "Falta PRTH", IF ( ([Tipo Estação]="ANEEL" || [Tipo Estação]="SYNOP") && (([testeConsistencia] > 0 && [Id Tpconsistmnem] =4) || (ISBLANK([PLMT]), "Medição Nula", IF( ([PLMT] < 0 OR [PLMT] > 100) || ([Tipo Estação] ="AUTO" && ([PRTH] < 0 || [PRTH] > 50), "Consistência", "OK" ) ) )or a cleaner way might be:
SWITCH(TRUE(), [Cor PRTH] && [Tipo Estação]="AUTO", "Falta PRTH", ([Tipo Estação]="ANEEL" || [Tipo Estação]="SYNOP") && (([testeConsistencia] > 0 && [Id Tpconsistmnem] =4) || (ISBLANK([PLMT]), "Medição Nula", ([PLMT] < 0 OR [PLMT] > 100) || ([Tipo Estação] ="AUTO" && ([PRTH] < 0 || [PRTH] > 50), "Consistência", "OK" )- AnonymousNot applicable
Greg_Deckler It's working now, thank you Greg, you're the real deal =D