Saiba mais sobre a função CALCULATE

Concluído

No final desta unidade, terá uma forte compreensão de como a função CALCULATE é uma das funções mais versáteis do Power BI.

A um nível elevado, tem controlo sobre o contexto de linha e filtro. Com a função CALCULATE, pode adicionar filtros, pode desligá-los e atualizá-los. É muito poder numa função!

Adicionar um filtro com CALCULATE

Em primeiro lugar, como adicionar um filtro com a função CALCULATE.

Tabela de dados que será referenciada ao adicionar um filtro com a função CALCULATE.

Tem o total de vendas na tabela de dados anterior:

Total Sales = SUM( [Sales Amount] )

Também tem uma versão filtrada do total de vendas, onde está a avaliar o total de vendas e a aplicar um contexto de filtro de avião:

Airplane Sales = CALCULATE( [Total Sales], 'Product Details'[ItemGroup] = "Airplane" )

Dica

CORRELACIONAR COM TABLEAU: O fragmento de código seguinte mostra como faria o mesmo cálculo em Tableau: Airplane Sales = IF [ItemGroup] = "Airplane" THEN SUM([Sales Amount] ELSE 0 END)

Ignorar um filtro com CALCULATE

Em seguida, como ignorar um filtro com a função CALCULATE.

Tabela de dados que será referenciada ao ignorar um filtro com a função CALCULATE.

Na tabela de dados anterior, tem o total de vendas por estado numa coluna e o total de vendas por toda a geografia na coluna seguinte. Esta coluna será útil quando quiser fazer análises sobre a percentagem do total de cada estado (ou linha).

A forma mais comum de fazer uma percentagem do total no DAX é através da função ALL.

Total Sales All Geo = CALCULATE( [Total Sales], ALL( Geography ) )

No código acima, está a olhar para a tabela Geografia e a incluir todos os valores na mesma; não reduza o contexto de filtro.

Dica

CORRELACIONAR COM TABLEAU: O fragmento de código seguinte mostra como faria o mesmo cálculo em Tableau, utilizando a expressão EXCLUDE LOD: Total Sales All Geo = { EXCLUDE [State], [City] : SUM([Total Sales]) }

Um exemplo de filtro ignorar diferente teria um aspeto semelhante ao seguinte:

Tabela de dados que será referenciada ao ignorar filtros com a função CALCULATE.

Na tabela anterior, tem vendas totais por estado, total de vendas por toda a geografia (com todos os filtros geográficos excluídos) e, por fim, tem o total de vendas por todos os estados, mas com o filtro de cidade ainda a ser aplicado.

Com base na imagem, a cidade de Alexandria existe em vários estados. Então, você só quer encontrar o total de vendas desses estados que têm Alexandria como uma cidade:

Total Sales All States = CALCULATE( [Total Sales], ALL( Geography[State] ) )

Dica

CORRELACIONAR COM TABLEAU: é assim que faria o mesmo cálculo em Tableau, com a expressão EXCLUDE LOD. Irá reparar que esta expressão LOD é diferente da outra pela sua granularidade. Com esta expressão, só quer excluir o estado da vista, em vez do estado e da cidade: Total Sales All States = { EXCLUDE [State] : SUM([Total Sales]) }

Atualizar um filtro com CALCULATE

Por fim, as instruções finais para realçar a utilidade da função CALCULATE serão através da atualização de um filtro.

Tabela de dados que será referenciada ao atualizar um filtro com a função CALCULATE.

Na tabela de dados anterior, tem o total de vendas em geral (ignorando o ano), o total de vendas no contexto de filtro aplicado pela segmentação de dados no elemento visual e, em seguida, a última coluna é o total de vendas apenas para o ano de 2018.

Para obter a coluna "Vendas de 2018", terá de escrever algo assim:

2018 Sales = CALCULATE( [Total Sales], DATE[Year] = 2018 )

Dica

CORRELACIONAR COM TABLEAU: esta é interessante porque não parece haver uma comparação direta do Tableau. Para fazê-lo em Tableau, teria de duplicar campos, trazer origens de dados suplementares ou efetuar cálculos em cada coluna.

Tableau, atualmente não disponível. Power BI, controle o contexto do filtro ao atualizar o filtro com a função CALCULATE.

Vamos resumir o que reviu nesta unidade CALCULATE:

  • Qualquer expressão pode ser colocada como o primeiro argumento.

  • A expressão analisa todo o contexto de filtro na página (as segmentações de dados para a visualização).

  • Se os filtros estiverem presentes, será adicionado.

  • Se existir um filtro que já esteja na lista de filtros e for o mesmo que o contexto da página, substituirá esse filtro.

  • Depois de todas essas nuances (listadas acima), irá finalmente avaliar a expressão.

Nota

Obviamente, isto não é algo que deve fazer sem verificar as suas respostas para realmente compreender a ordem das operações. Devia perguntar a si mesmo: "Os meus filtros foram cancelados ou não?"