Referência · DAX (Power BI)

DAX: IF, SWITCH e o padrão SWITCH(TRUE())

O IF escolhe entre dois valores; o SWITCH escolhe entre vários. Os dois têm detalhes que costumam gerar bugs, como o resultado vazio quando falta o valor de falso. Os exemplos abaixo foram executados no Power BI Desktop.

Cada resultado desta página foi obtido executando a expressão no motor do Power BI Desktop (Analysis Services 17.0.57.16), em um Windows em português do Brasil. Um teste automático do Me Ajuda Flow confere que o texto da página é idêntico ao valor registrado. As expressões usam a sintaxe padrão do DAX (vírgula entre argumentos e ponto decimal); o editor do Power BI Desktop pode mostrar os separadores da configuração regional do Windows.

Exemplos executados

ExpressãoResultadoObservação
IF(1 > 2, "a", "b")"b"
IF(1 > 2, "a")BLANK()Sem o terceiro argumento, a condição falsa devolve BLANK.
SWITCH(2, 1, "um", 2, "dois", "outro")"dois"SWITCH compara o valor e devolve o resultado do primeiro caso igual; o último argumento é o padrão.
SWITCH(TRUE(), 5 > 10, "x", 5 > 3, "y", "z")"y"SWITCH(TRUE(), ...) testa condições em ordem e devolve a primeira verdadeira.

Pegadinhas

Quando usar

Perguntas frequentes

SWITCH(TRUE()) é mais lento que IFs aninhados?

Ele costuma ser bem mais legível. Se o modelo for grande, confira o desempenho no seu caso.

Posso usar SWITCH com texto?

Pode. O primeiro argumento pode ser qualquer valor, e cada caso é comparado com ele.

Mais páginas de DAX

No Power Automate

Fontes oficiais