funções no Power BI - Funções lógicas

As funções lógicas no Power BI são bem semelhantes às utilizadas no excel. A linguagem DAX (Data Analysis Expression) é a utilizada para criar funções no Power BI.

Estas funções lógicas no Power BI são utilizadas para checar as possibilidades de uma expressão e retornar informações sobre um valor baseado numa condição ou conjunto de condições. Como exemplo temos a função IF (SE) que checa o resultado de uma expressão ou cria resultados condicionais.

Vamos tratar neste artigo mais detalhadamente as principais funções lógicas no Power BI. As que são frequentemente utilizadas nos modelos de dados. Disponibilizamos também um exemplo prático de cada uma. Assim você consegue ver na prática como são utilizadas. Baixe este exemplo para facilitar seu aprendizado.

 

Lista das funções lógicas no Power BI (DAX)

  • AND
  • FALSE
  • IF
  • IFERROR
  • NOT
  • OR
  • SWITCH
  • TRUE

Referência: MSDN MICROSOFT

Inserindo uma nova medida no Power BI

Caso ainda não saiba como criar uma medida, segue abaixo um pequeno passa a passo, simples. Todas as fórmulas que utilizaremos aqui seguirá este mesmo padrão.

No Power BI Desktop, conforme a tela abaixo, clique na faixa de opções Modelagem (1) em seguida clique em Nova Medida (2), será aberta uma linha para você digitar a nova medida que será criada (3). Muito simples, não é?

Funções DAX nova medida

 

IF

A função IF verifica se a condição fornecida como argumento foi atendida, caso seja retornará o valor atribuído como verdadeiro e se não atender retornará o valor atribuído para o falso.

Estrutura da fórmula: IF (<teste lógico>;<valor se verdadeiro>;<valor se falso>)

Termo Definição
teste lógico Qualquer valor ou expressão que possa ser avaliada como VERDADEIRO ou FALSO.
valor se verdadeiro O valor retornado quando o teste lógico é VERDADEIRO. Se ele for omitido, o termo “TRUE” será retornado.
valor se falso O valor retornado quando o teste lógico é FALSO. Se ele for omitido, o termo “FALSE” será retornado.

Caso o valor de <valor se verdadeiro> ou <valor se falso> for omitido, será tratado pelo IF como um valor vazio (“”). Se o valor referenciado na expressão for uma coluna, será retornado um valor que corresponde à linha atual.

Exemplo 1

Exemplo de Função IF 1 =
IF ( MAX ( Funcionarios[Data Status] ) = BLANK (); "Funcionário Ativo"; "" )

Neste exemplo, caso não tenha nenhuma data na coluna “Data Status”, significa que o funcionário está ativo. Veja no quadro o resultado.

Funções lógicas DAX - Função IF

Exemplo 2

Exemplo de Função IF 2 =
IF (
    'Funções'[01-Função IF 1] = BLANK ();
    "";
    IF (
        MAX ( Funcionarios[Status] ) <> "Demissão"
            && YEAR ( MAX ( Funcionarios[Admissão] ) ) < 2010;
        "Muito experiente";
        IF (
            MAX ( Funcionarios[Status] ) <> "Demissão"
                && YEAR ( MAX ( Funcionarios[Admissão] ) ) < 2016;
            "Experiente";
            "Pouco experiente"
        )
    )
)

Neste exemplo, utilizamos três funções IF aninhadas para retornar quatro condições diferentes. A primeira é que se o funcionário não for ativo retornará um valor em branco. Caso seja ativo tem mais outras três condições. Se tiver sido admitido antes de 2010, entre 2010 e 2015 e por fim a partir de 2016. Atendendo cada uma das condições retornará um texto diferente.

Funções lógicas DAX - Função IF 2

 

AND

Esta função verifica se os dois argumentos são verdadeiros, retorna um resultado VERDADEIRO se forem. Caso contrário retornará FALSO. Haverá assim dois resultados possíveis dependendo da combinação de valores disponíveis e testadas.

Estrutura da fórmula: AND (<lógica1>;<lógica2>)

<lógica1>,<lógica2>, corresponde aos valores a serem verificados, pode ser utilizado valores ou expressões.

Diferentemente da fórmula utilizada no excel, em DAX esta função aceita apenas dois argumentos. Para múltiplos argumentos será necessário criar uma série de cálculos combinando funções ou simplificar utilizando o operador && (é o mesmo que AND e note que utilizamos na hora de explicar a função IF acima) para unir as funções AND numa expressão mais simples.

Abaixo o exemplo utilizado no arquivo disponibilizado neste artigo:

 

Exemplo da função AND =
IF (
    AND (
        MAX ( Funcionarios[Data Status] ) <> BLANK ();
        YEAR ( MAX ( Funcionarios[Data Status] ) ) = 2017
    );
    "Inativos em 2017";
    ""
)

Neste exemplo, utilizamos a função juntamente com o IF, utilizada para verificar se o funcionário está inativo e se entrou como inativo em 2017. São duas condições verificadas e, sendo as duas verdadeiras retornará a mensagem de “Inativos em 2017”.

Veja o resultado.

Funções lógicas no Power BI - Função AND

 

OR

Nesta função basta um dos argumentos ser verdadeiro para retornar o resultado como VERDADEIRO. A função retornará FALSO se os dois argumentos não atendem nenhuma das condições.

Estrutura da fórmula: OR (<lógica1>;<lógica2>)

Serão avaliados os argumentos até que o primeiro VERDADEIRO apareça. O valor será VERDADEIRO se algum dos argumentos for atingido, caso nenhum deles seja atingido retornará FALSO.

Do mesmo jeito que AND a função OR em DAX aceita apenas dois argumentos. Se precisar executar uma operação OR em várias expressões, você poderá criar uma série de cálculos ou, melhor ainda, usar o operador OR (||) para unir tudo em uma expressão mais simples.

No nosso arquivo de exemplos você encontrará o seguinte em relação a esta função.

Exemplo da função OR =
IF (
    OR (
        MAX ( Funcionarios[Status] ) = "Licença Maternidade";
        MAX ( Funcionarios[Status] ) = "Auxílio Doença"
    );
    "Inativo";
    ""
)

Veja como ficou o quadro.

Funções lógicas DAX - Função OR

Além das funções lógicas no Power BI citadas neste artigo, há diversas outras funções, sejam matemáticas, estatísticas, dentre outras. Baixe pela figura abaixo nosso e-book contendo outras funções DAX.  Com certeza serão muito uteis para você.

15 funções DAX mais usadas

 

IFERROR

Esta função avalia uma expressão e retorna um valor especificado caso a expressão resulte em um erro; caso não tenha erro, retorna o valor da própria expressão.

Estrutura da fórmula: IFERROR (<valor>;<valor se erro>)

O trabalho desta função é retornar valores válidos em caso de erro no cálculo, por exemplo, uma divisão por zero resultará em erro, multiplicar valores por texto resultará em erro e assim por diante.

No caso de <valor> ou <valor se erro> for uma célula vazia, o IFERROR tratará como um valor vazio (“”).

Esta função se baseia na função IF, com as mesmas características mas com menos argumentos. Caso ocorra algum erro, ao invés de retornar uma mensagem de erro ele retorna o valor especificado.

Segue um exemplo simples para entenderem o funcionamento

Exemplo Simples = IFERROR (50/0; 1)

Observe que a divisão por zero dá erro, mas no caso retornará o valor 1 e não a mensagem de erro.

 

SWITCH

Dentre as funções lógicas no Power BI, esta é função puramente DAX. É de grande ajuda para simplificar o uso do IF. O que quero explicar aqui é que a função SWITCH evita utilizar um punhado de IFs. Entenderão melhor no exemplo que damos.

A função avalia uma expressão em relação a uma lista de opções e retorna um desses resultados de acordo com o contexto.

Estrutura da fórmula: SWITCH (<expressão>; <valor>; <resultado>; <valor1>; <resultado1>; …; <caso contrário>)

Termo Definição
expressão Qualquer expressão DAX que retorne um único valor escalar, onde a expressão será avaliada várias vezes (para cada linha/contexto).
valor Um valor constante a ser correspondido com os resultados.
resultado Qualquer expressão escalar a ser avaliada se os resultados coincidirem com o valor correspondente.
caso contrário Qualquer expressão escalar a ser avaliada se o resultado não coincidir com nenhum dos argumentos de valor.

 

Importante que as expressões de <resultado> e a expressão de <caso contrário> serem do mesmo tipo de dados.

Para facilitar o entendimento segue um exemplo simples.

Exemplo de Função SWITCH =
SWITCH (
    MAX ( CalendarioDAX[Mês] );
    1; "Janeiro";
    2; "Fevereiro";
    3; "Março";
    4; "Abril";
    5; "Maio";
    6; "Junho";
    7; "Julho";
    8; "Agosto";
    9; "Setembro";
    10; "Outubro";
    11; "Novembro";
    12; "Dezembro";
    "Mês não encontrado"
)

Veja o resultado gerado no arquivo que disponibilizamos para você acompanhar cada função.

Funções lógicas no Power BI - Função SWITCH

Se não existisse a função SWITCH seria necessário utilizar várias funções IF aninhadas, abaixo está como ficaria com o IF.

Usando IF ao INVÉS de SWITCH =
IF (
    MAX ( CalendarioDAX[Mês] ) = 1;
    "Janeiro";
    IF (
        MAX ( CalendarioDAX[Mês] ) = 2;
        "Fevereiro";
        IF (
            MAX ( CalendarioDAX[Mês] ) = 3;
            "Março";
            IF (
                MAX ( CalendarioDAX[Mês] ) = 4;
                "Abril";
                IF (
                    MAX ( CalendarioDAX[Mês] ) = 5;
                    "Maio";
                    IF (
                        MAX ( CalendarioDAX[Mês] ) = 6;
                        "Junho";
                        IF (
                            MAX ( CalendarioDAX[Mês] ) = 7;
                            "Julho";
                            IF (
                                MAX ( CalendarioDAX[Mês] ) = 8;
                                "Agosto";
                                IF (
                                    MAX ( CalendarioDAX[Mês] ) = 9;
                                    "Setembro";
                                    IF (
                                        MAX ( CalendarioDAX[Mês] ) = 10;
                                        "Outubro";
                                        IF (
                                            MAX ( CalendarioDAX[Mês] ) = 11;
                                            "Novembro";
                                            IF ( MAX ( CalendarioDAX[Mês] ) = 12; "Dezembro"; "Mês não encontrado" )
                                        )
                                    )
                                )
                            )
                        )
                    )
                )
            )
        )
    )
)

Dá para ver claramente o quanto a função SWITCH resume e simplifica a fórmula e deixa ela mais enxuta obtendo o mesmo resultado.

 

OUTRAS FUNÇÕES LÓGICAS NO POWER BI

Além das que detalhamos acima temos as funções:

Função Descrição
TRUE Sintaxe: TRUE()

A fórmula retorna o valor lógico TRUE (VERDADEIRO).

FALSE Sintaxe: FALSE()

A fórmula retorna o valor lógico FALSE (FALSO).

NOT Sintaxe: NOT (<lógica>)

Altera o resultado TRUE para FALSE e FALSE para TRUE. Retorna a lógica oposta para estes valores.

 

Com isto falamos de todas as funções lógicas no Power BI disponíveis na linguagem DAX. São funções que serão bastante utilizadas no dia a dia, são bem simples de serem entendidas e utilizadas.

Compartilhe este conteúdo nas suas redes sociais (utilize os botões abaixo) e ajude seus colegas a compreender melhor sobre o assunto.

Tem dúvidas? Nos pergunte! Utilize a sessão de comentários deste artigo logo abaixo.

Até a próxima!

Compartilhe
2 respostas

Os comentários estão fechados.