CALCULATE é uma das funções mais versáteis do Power BI.
Quando você começa a usar qualquer coisa, desde filtros simples, funções de inteligência de tempo ou até mesmo fórmulas avançadas, muitas vezes as fórmulas CALCULATE são aproveitadas para produzir o resultado desejado.
Vamos usar CALCULATE para:
- Filtrar uma coluna em uma tabela;
- Condições de filtro único ou condições de filtro múltiplo;
- Explorar a sintaxe da função.
Como usar CALCULATE
CALCULATE(Expressão, Filtro1)
A seção de filtro do cálculo só pode ser:
- um número;
- texto;
- um encontro.
Na fórmula, há dois argumentos básicos.
- Expressão
- Filtro.
Uma expressão pode ser qualquer coisa de uma agregação ou medida calculada.
Para isso, vamos usar as funções SUM e Average com nossa função.
No entanto, lembre-se de que você não está limitado a essas agregações.
CALCULATE(SUM(Tabela[Coluna],Filtro1)
CALCULATE(AVERAGE(Website[Sessões]),Website[tipo]=”Pesquisa Orgânica”)
O benefício de usar a função para filtrar é usar suas medidas calculadas recém-criadas para adicionar uma camada de contexto e complexidade às suas visualizações.
Por exemplo, sobrepor a quantidade de visitas de pesquisa orgânica do site ao total de seus recursos visuais.
Isso pode ser alcançado com o filtro intrincado em seu painel de visualização, no entanto, pode ser feito rapidamente usando essas medidas.
Normalmente, quando seus dados são um campo de coluna, você fica restrito aos gráficos empilhados e filtra para isolar a dimensão de sua escolha.
A função CALCULATE pode ajudar a contornar isso.
Use CALCULATE com dois ou mais filtros
Às vezes, seus dados podem precisar ser mais filtrados por mais de uma condição para fornecer o segmento de seu interesse.
Imagine que você tenha o desafio de descobrir o número de sessões para suas visitas de pesquisa orgânica de mulheres.
Isso pode ser obtido adicionando um filtro adicional à sua função.
Para usar CALCULATE com vários filtros, você pode simplesmente adicionar outra condição de filtro.:
CALCULATE(AVERAGE(Website[Sessões]),Website[type]=”Pesquisa Orgânica”, Website[gênero]='feminino')
Você pode ter quantas condições quiser adicionando mais filtros condicionais.
Exploraremos outras condições usando algumas das funções de inteligência de tempo no Power BI.
Use Calculate com funções de inteligência de tempo
É uma ótima função para comparar com funções de inteligência de tempo, como:
- SAMEPERIODLASTYEAR,
- PREVIOUS MONTH,
- PREVIOUSDAY.
Para mim, esse é um dos melhores usos para avaliar dados de séries temporais.
Vejamos o exemplo abaixo, que compara os preços deste ano com os do ano passado.
A fórmula que estamos usando está abaixo:
- CALCULATE(SUM(Website[Sessões],SAMPERIODLASTYEAR(Website[data]))
Você também pode obter o mesmo resultado usando a função YEAR :
- CALCULATE(SUM(Website[Sessões],YEAR(Website[data)-1)
Você pode ir além e comparar o preço deste ano com o do ano passado para orgânicos, adicionando um filtro adicional.
Aqui está a soma deste ano em relação ao ano passado do total de sessões do site.
- CALCULATE(SUM(Website[Sessões]),SAMPERIODLASTYEAR(Data[data]), Website[tipo]=”Orgânico”)
Como CALCULATE funciona com ALL e FILTER
É muito importante entender como a CALCULATE filtra os dados que você está adicionando à função.
Então vamos mostrar como as funções ALL e FILTER podem alterar os resultados dos seus dados.
ALL
Esta função irá ajudá-lo a alcançar diferentes objetivos.
Na maioria das vezes, ao lidar com funções de tabela, simplesmente usar SUM não fornecerá o total de todas as dimensões.
Ele lhe dará o total ou cálculo por dimensão.
ALL permite que você obtenha o total ou o cálculo em todas as dimensões; em outras palavras, um total verdadeiro.
O benefício da função ALL é que ela permitirá que você use isso em cálculos para obter porcentagens em diferentes dimensões.
- ALL Calculate = CALCULATE(SUM(Website[Sessões]),ALL(Website[Canais))
FILTER
FILTER com CALCULATE permite isolar o cálculo para essa dimensão.
Neste exemplo, queremos apenas o total para a dimensão única que especificamos.
- CALCULATE(SUM(Website[Sessões]),FILTER(Website,Website[Canais]=”Pesquisa Orgânica”))
Benefícios de usar FILTER com CALCULATE
- Você pode medir na seção Filtro
- Criar declarações OU
Você não pode usar medidas na seção de filtro de CALCULATE.
Imagine se você quisesse obter a soma das sessões com mais de 4 canais em um dia.
Primeiro, você cria uma medida
- Count of Channels = COUNT(‘Web Site Data’,[Default Channels)
Agora, se você quiser usar isso para ver quantas sessões ocorreram com canais padrão acima de 4.
- Sessão com mais de 4 canais =CALCULATE(SUM(Site[Sessões]),[Contagem de canais ]>4))
Você receberá um erro:
Uma função ‘CALCULATE’ foi usada em uma expressão Verdadeiro/Falso que é usada como uma expressão de filtro de tabela. Isso não é permitido.
Para superar esse erro, você pode usar FILTER
- CALCULATE(SUM(Website[Sessões]),FILTER(Website,[Contagem de Canais ]>4))
Usando OR com CALCULATE
Quando você adiciona dois filtros à função CALCULATE, isso é equivalente a usar AND.
Portanto, se você deseja obter os canais direto ou de referência, precisará usar o || para criar OR em CALCULATE e FILTER.
- Sessões diretas OR de referência = CALCULATE(SUM(‘All Web Site Data'[Sessions]),FILTER(‘All Web Site Data’,’All Web Site Data'[Default Channel Grouping]=”Direct” || ‘All Web Site Dados'[Agrupamento de canais padrão]=”Referência”))
Quando quiser usar a condição OR, use FILTER com CALCULATE.
https://absentdata.com/power-bi/how-to-use-calculate-in-power-bi/