POWER – Como usar IF corretamente no Power BI DAX

Compartilhe!

POWER – Como usar IF corretamente no Power BI DAX

Antes de começarmos vamos dar uma rápida olhada em como usar IF no Excel

Função IF no Power BI

Observe algumas coisas sobre IF no Excel

  1. A sintaxe de IF é quase a mesma no Excel e no DAX.
    • Na condição Actual(cell D4)> = Target(cell C4) ambos os valores são valores simples / escalares (ou seja, não são um intervalo ou uma tabela)
    • Além disso, as palavras “Met” (Result if True) e “UnMet” (Result if False) são novamente um valor único / escalar
  2. Como escrevemos IF em cada linha do Excel, esquecemos essas coisas óbvias

Circulando de volta para IF no DAX, você pode escrever IF de 3 maneiras diferentes no DAX

  1. Em uma coluna para cada linha de uma tabela
  2. Em certa medida
  3. Em uma medida que se refere a cada linha de uma tabela

Tenho certeza de que você entendeu a parte do Excel, mas, no caso, escrever IF no DAX está se tornando um pesadelo para você. Vou explicar todos os 3 pontos acima em detalhes

Escrevendo IF em uma coluna para cada linha de uma Tabela

Considere a mesma tabela e escreva uma fórmula IF

Função IF no Power BI

Escrever se em uma coluna para cada linha de uma tabela é exatamente como o Excel. Uma vez que IF vem em cada linha da tabela, isso não deve ser um problema.

Usando IF em uma Medida

É aqui que começa a ficar complicado. Considere esta medida (errônea e incompleta)

Função IF no Power BI

Você pode ver que estou no meio da escrita da medida, mas IF não está fornecendo nenhuma lista suspensa para selecionar a coluna da tabela. Isso pode ter acontecido com você, o problema é ..

  • Quando você escreve uma medida e tenta selecionar a coluna da tabela, o Power BI não sabe a qual linha você está se referindo?
  • Em segundo lugar, sua medida (se aceita) produzirá um resultado com todas as linhas da Tabela de dados, mas uma medida só pode ter um único valor (escalar)

Como contornar este problema. 2 maneiras!

Método # 1 (Escrevendo IF em uma Medida) – Use uma agregação para resumir os dados, algo assim

Met/UnMet Measure Correct = IF ( SUM ( Data[Actual] ) >= SUM ( Data[Target] ), "Met", "UnMet" )

Observe que..

  • A função SUM converte as colunas reais e de destino em um valor escalar
  • Esta medida não é o mesmo que escrever se em cada linha da tabela

Método # 2 (Escrevendo IF em uma Medida) – Para usar a função IF no contexto de linha usando um iterador de linha como SUMX ou FILTER

Total of TagetMet Rows = CALCULATE ( SUM ( Data[Actual] ), FILTER ( Data, Data[Actual] >= Data[Target] ) )

Outra maneira de fazer a mesma coisa

Total of TagetMet Rows = SUMX ( Data, IF ( Data[Actual] >= Data[Target], Data[Actual] ) )

No DAX, a menos que você esteja usando um único valor escalar em todas as 3 entradas na instrução IF, isto é (Condição, Resultado se true, Resultado se false), não funcionará!

BAIXAR ARQUIVO POWER BI

VIA: goodly

Compartilhe!