Função REMOVEFILTERS no POWER BI: vê aqui como podes remover os filtros existentes num relatório!

Função REMOVEFILTERS no POWER BI: vê aqui como podes remover os filtros existentes num relatório!

Neste novo artigo, vou mostrar-te a função REMOVEFILTERS, que permite remover os filtros existentes no relatório e, em particular, no visual (matriz ou gráfico) onde estamos a analisar o nosso cálculo. Vamos lá?

Num modelo de dados, se pretendemos executar cálculos em Power BI, devemos usar medidas explicitas através das expressões DAX (Data Analysis Expressions). Para além dos cálculos normais como somas, médias e contagens, temos também alguns cálculos habituais como percentagens em relação aos totais. Para criarmos este tipo de cálculo temos de utilizar expressões DAX mais complexas.

A função REMOVEFILTERS é uma função da categoria de filtros, que funciona especificamente como um “modificador” da função CALCULATE, e pode ser utilizada para substituir a função ALL nos cálculos efetuados. Em resumo, vamos utilizar a função CALCULATE com a expressão de filtro modificada através da função REMOVEFILTERS, que no cenário permitirá obter todas as vendas do exemplo do modelo de negócio e a partir daí criarmos cálculos com base nessa medida.

Durante o exemplo vamos também ver como as variáveis podem ser utilizadas em DAX para facilitar a leitura do código.

Não percas aqui todo o processo passo-a-passo detalhado, faz o download do ficheiro base e, se tiveres alguma dúvida, envia-nos a uma mensagem... ficamos à tua espera!

Não foi fornecido texto alternativo para esta imagem

Cenário

O nosso modelo de dados é uma empresa de artigos de desporto, que representa a vendas de produtos em 5 anos, desde 2018 a 2022. A empresa tem várias lojas espalhadas ao longo do país e o modelo de dados está organizado da seguinte forma:

Não foi fornecido texto alternativo para esta imagem

Estamos perante um típico esquema de estrela, onde temos uma tabela de vendas, que contem o registo de todas as vendas, e as restantes tabelas (de dimensão) fornecem os dados que caracterizam as vendas.

Medidas

Para os cálculos vamos começar por agregar as vendas, criando a primeira medida.

Não foi fornecido texto alternativo para esta imagem

A expressão será feita através da função SUMX para iterar a tabela das vendas, e definir uma expressão para cada linha da tabela, através de uma multiplicação: A quantidade -  Vendas[Quantidade] pelo preço de venda - Vendas[Preço de Venda], conforme o código a baixo.

Vendas (€) =
SUMX(
    Vendas;
    Vendas[Quantidade] * Vendas[Preço Venda]
)        
Não foi fornecido texto alternativo para esta imagem

Se consultarmos a medida num cartão, por exemplo, conseguimos ver o total de vendas:

Não foi fornecido texto alternativo para esta imagem

Mas se aplicarmos a mesma medida, por exemplo numa matriz, o valor total das vendas é subdividido de acordo com o contexto de filtro aplicado na matriz, neste caso por exemplo, o ano e o trimestre:

Não foi fornecido texto alternativo para esta imagem

Com a função REMOVEFILTERS, podemos calcular o total de vendas, ignorando qualquer contexto de filtro aplicado sobre a coluna ou tabela pretendida. Neste caso pretendemos ignorar qualquer contexto de filtro aplicado sobre toda a tabela das vendas.

A função REMOVEFILTERS é aplicada apenas como modificador do filtro da função CALCULATE, ao contrário da função ALL, que pode ser utilizada como uma função que devolve uma tabela, coluna ou combinação de colunas.

Para o efeito, faz mais sentido utilizar a função REMOVEFILTERS em vez da função ALL.

Todas as vendas =
CALCULATE(
    [Vendas (€)];
    REMOVEFILTERS(Vendas)
)        
Não foi fornecido texto alternativo para esta imagem

Na imagem podemos ver a medida aplicada na matriz.

Não foi fornecido texto alternativo para esta imagem

Neste caso esta medida serve apenas para exemplificar o contexto do cálculo! O objetivo principal é usar esta nova medida como o denominador numa operação matemática de divisão simples, que permite saber o valor parcial de cada venda, em relação ao total de vendas.

Não foi fornecido texto alternativo para esta imagem

A divisão é uma operação simples, que pode ser calculada com a função DIVIVE que calcula uma divisão “segura” substituindo o resultado de uma divisão por 0 por um valor nulo.

Pct. Vendas sobre total =
DIVIDE([Vendas (€)];[Todas as vendas])        
Não foi fornecido texto alternativo para esta imagem

Medida final com variáveis

Mas vamos assumir que não temos a “medida” que calcula todas as vendas, uma vez que é uma medida que serve apenas como medida de “suporte” para obter todos os valores de vendas. Neste caso, o cálculo pode ser alterado, para incluir a medida que calcula todas as vendas [Todas as vendas] funcionando como uma variável no código.

Pct. Vendas sobre total =
VAR VendasAtuais = [Vendas (€)]
VAR VendasGlobais =
    CALCULATE(
        [Vendas (€)];
        REMOVEFILTERS(Vendas)
    )
VAR Percentagem =
    DIVIDE(VendasAtuais;VendasGlobais)
RETURN
    Percentagem        
Não foi fornecido texto alternativo para esta imagem

Na matriz podemos consultar o resultado com a percentagem de cada trimestre sobre o total de vendas.

Não foi fornecido texto alternativo para esta imagem


Felipe Rocha

Analista de Dados | Analista BI | SQL | Python | Power BI

10 m

Muito bom, obrigado pelas informações. Eu gostaria de saber como escolher qual filtro eu quero manter. Por exemplo, tenho lá um segmentador pra ano, um pra mês e um pra loja. Eu quero exibir um grafico comparativo mensal, pra isso preciso ignorar todos os filtros exceto o mensal.

Entre para ver ou adicionar um comentário

Outras pessoas também visualizaram

Conferir tópicos