ALLEXCEPT em ação: criando cálculos precisos no Power BI
Se você tem a necessidade de criar cálculos com um nível de precisão mais apurado em relação ao contexto de filtros, este artigo é para você. Vamos falar como a função ALLEXCEPT pode ser útil apresentando uma explicação detalhada sobre ela, dando exemplos práticos e boas práticas para seu uso, além de citarmos cuidados a serem considerados.
O que é a função ALLEXCEPT?
No DAX, a função ALLEXCEPT retorna todas as colunas de uma tabela, exceto aquelas especificadas como argumento. Sua principal utilidade está em remover filtros de todas as colunas de uma tabela, mantendo os filtros nas colunas especificadas.
Ela é bem parecida com a função ALL, que desconsidera contextos de filtro. A diferença é que neste caso é possível especificar quais filtros e colunas não serão desconsiderados.
Sintaxe:
ALLEXCEPT(Tabela, Coluna1 [, Coluna2, ...])
- Tabela: A tabela em que a função opera.
- Coluna1, Coluna2, …: As colunas cujos filtros serão preservados.
Exemplos de Uso
Exemplo 1: Calculando o total de vendas por categoria
Imagine uma tabela de vendas que contém informações sobre produtos, categorias e valores de vendas. Se quisermos calcular o total de vendas para cada categoria, ignorando filtros em outras colunas, podemos usar:
Total Vendas por Categoria =
CALCULATE(
SUM(Vendas[Valor]),
ALLEXCEPT(Vendas, Vendas[Categoria])
)
Nesse caso, o ALLEXCEPT remove os filtros em todas as colunas da tabela de vendas, exceto na coluna Categoria.
Exemplo 2: Relatórios com gráficos dinâmicos
Em dashboards interativos, pode ser necessário calcular a média geral dentro de uma dimensão fixa, como “Departamento”:
Média por Departamento =
CALCULATE(
AVERAGE(Vendas[Valor]),
ALLEXCEPT(Vendas, Vendas[Departamento])
)
Isso permite que os usuários vejam comparações mais focadas em gráficos, ignorando filtros de contexto indesejados.
No exemplo acima, a média de vendas geral será feita considerando apenas os filtros de Departamento.
Exemplo 3: Total de vendas por categoria e região
Você deseja calcular o total de vendas, removendo os filtros em todas as colunas, mas preservando os filtros aplicados às colunas Categoria e Região.
Total Vendas por Categoria e Região =
CALCULATE(
SUM(Vendas[Valor]),
ALLEXCEPT(Vendas, Vendas[Categoria], Vendas[Região])
)
Se você estiver visualizando um relatório em que o filtro “Categoria = Eletrônicos” e “Região = Norte” está ativo, essa métrica respeitará esses filtros, mas ignorará qualquer outro filtro, como data ou produto.
👍Boas práticas ao usar a ALLEXCEPT👍
- Entenda os contextos de filtro: Certifique-se de que você compreende como os contextos de linha e filtro interagem em seus cálculos.
- Use com moderação: ALLEXCEPT pode impactar a performance, especialmente em modelos grandes, pois altera filtros em uma tabela inteira.
- Prefira tabelas relacionais: Sempre que possível, mantenha uma boa modelagem de dados para evitar a necessidade excessiva de manipulação de filtros.
- Combine com outras funções: ALLEXCEPT é frequentemente usado junto com CALCULATE e FILTER para criar cálculos mais complexos e ajustados ao objetivo.
- Utilize variáveis: Evite criar vários cálculos que utilizem ALLEXCEPT na mesma medida. Utilize variáveis para melhorar a sua performance.
- Agrupe dados: Se possível, faça o agrupamento prévio dos dados para evitar a necessidade do uso da ALLEXCEPT.
🚨Cuidados ao utilizar a ALLEXCEPT🚨
- Impacto na performance: Em modelos grandes, o uso excessivo de ALLEXCEPT pode aumentar o tempo de cálculo.
- Falta de clareza: O uso descuidado pode dificultar o entendimento do código por outros desenvolvedores.
- Filtros involuntários: Certifique-se de que você está preservando apenas os filtros necessários para evitar resultados inesperados.
Conclusão
A função ALLEXCEPT é boa aliada na criação de análises dinâmicas e detalhadas no Power BI. Compreender como ela interage com o modelo de dados e como manipula os filtros é fundamental para tirar o máximo proveito dela.
Lembre-se que o equilíbrio entre complexidade e clareza deve ser uma prioridade.
✍️E você, já usou a função ALLEXCEPT em seus relatórios? Compartilhe nos comentários como ela ajudou na sua análise!✍️
Share this content:



Publicar comentário