Agregadores são as funções de agregação que operam com os valores de uma coluna, juntando um grupo de linha, retornando um resultado único.

Assim como SQL dax não considera nulls ou linhas vazias quando executa funções de agregação.

Somente uma coluna é aceita nas funções de agregação

DICA: a função MIN e MAX no PBI possuem comportamentos diferentes do habitual. Aqui é possível passar dois valores, expressões ou colunas na mesma função e ela irá comparar e retornar o maior (MAX) ou menor (MIN)! Isso evita muita reescrita de código.

ITERAÇÕES E AGREGAÇÕES

As funções de agregações são básicas para toda linguagem voltada para dados, em DAX não seria diferente, por exemplo, utilizando SUM agregamos toda uma coluna em um único resultado, o contra é que não conseguimos criar uma ação de filtro por ser uma função bem engessada.

Pensando em acabar com essa limitação das agregações, o PBI passou a contar com os iteradores que são funções que ao invés de agrupar toda a coluna, escaneiam e retornam resultado de acordo com a condição criada.

Diferente do que ocorre com a função sum que não permite nenhuma espécie de filtro ou condição. Opte sempre por utilizar SUMX em seus cálculos que envolvam DAX.

Além de permitir filtrar colunas da mesma tabela, podemos relacionar com outras (desde que esteja no mesmo modelo) e criar cálculos mais avançados e melhores, veja.

MIN & MAX

As funções de MIN e MAX no PBI são peculiares e um pouco diferentes do que quem esta habituado com SQL conhece, aqui, é possível passar mais de uma expressão aninhada na função, para saber qual terá o maior valor.

Assim como SUM, também possui suas funções de iteração com o mesmo modo de ação com a diferença que não há mais a possibilidade de comparação entre expressões. Permitindo somente uma por vez.

Acredito que talvez, a grande versatilidade das funções iteradoras seja ‘construir’ colunas calculadas sem precisar criar uma estrutura que vá consumir memória, como fizemos em posts anteriores.

Veja no exemplo abaixo que construí uma expressão que retornasse o lucro obtido com a venda de cada produto.

E abaixo, provando que o cálculo é processado de forma correta.

FUNÇÕES LÓGICAS

As funções lógicas são úteis para criar determinadas condições de cálculo ou, classificação de valores.

Assim como a clássica função IF, possuem em sua gama de funções: IFERROR, NOT, TRUE, AND, FALSE E OR.

Vimos em posts anteriores que podemos inclusive utilizar para cuidar de erros que possam ocorrer quando estamos criando uma expressão.

O exemplo clássico é criar classificação de produto utilizando IF aninhado, veja.

Uma outra opção ao IF seria a utilização do switch, que age de forma bem similar, ainda que para o processamento seja mais lento. Por baixo dos panos, switch é tratado da mesma forma que o IF pelo PBI.

Um caso curioso quando estava testado estas funções foi quando me surgiu um problema com base nos caracteres de texto.

Se por um acaso houver algum registro que contenha qualquer acento gráfico, esse caractere em específico deve ser escrito de forma estritamente igual ao que se encontra na coluna.

Perceba que na imagem acima, o registro foi direto para o “else” da função switch. Classificando o produto como “Other“.

Agora, alterando apenas a letra que contém o acento, veja que a classificação é devidamente atribuída.

CONCLUSÃO

Neste post vimos as funções de agregações e iterações que o PBI comporta em seu hall de análises!

As funções não diferem muito da linguagem SQL agem da mesma forma, com diferença que o group by é implícito. Se bem que, por baixo dos panos, DAX roda com comandos SQL.

Sempre que possível, utilize as iterações; Além de possuírem um excelente desempenho, sem perder nada para as agregações, têm a vantagem de permitir filtros e melhores manipulações de dados em seu uso.

Espero que tenham gostado, saúde!!!