Criar grupos de cálculo [Calculation groups] no Power BI Desktop

Neste novo artigo, vou mostrar-te como podes criar grupos de cálculo [Calculation groups] no Power BI Desktop. Vamos lá?
Quando estamos a criar um modelo de dados, e utilizamos expressões DAX, chegamos a um ponto em que começamos a ter demasiadas expressões DAX. Embora possam ser válidas para efetuar os cálculos, deparamo-nos, muitas vezes, com situações em que necessitamos de criar várias medidas que são praticamente iguais, onde alteramos apenas a “métrica a avaliar”. Por exemplo, o cálculo dos valores totais, ou médias de uma mesma coluna.
Esta lógica de “reaproveitar” várias medidas torna-se ainda mais evidente quando trabalhamos com expressões de Time Intelligence. É aqui que os grupos de cálculo, ou Calculation Groups, fazem sentido de ser aplicados. Uma vez que várias medidas criadas, aproveitam um padrão de cálculo que é o mesmo.
Não percas aqui o cenário de exemplo que partilho contigo, assim como o processo passo a passo, para poderes criar grupos de cálculo [Calculation groups] no Power BI Desktop. Não te esqueças de fazer o download do ficheiro base e, se tiveres alguma dúvida, envia-nos a uma mensagem... ficamos à tua espera!
Faça aqui o download dos seus ficheiros de apoio!
Cenário
No cenário do nosso relatório temos 4 medidas criadas:
Total de vendas = SUMX ( Vendas; Vendas[Preço Venda]*Vendas[Quantidade] ) Total de custos = SUMX ( Vendas; Vendas[Preço Custo]*Vendas[Quantidade] ) Total de margem = [Total de vendas] - [Total de custos] % de margem = [Total de margem] / [Total de vendas]
Estas medidas, quando apresentadas no relatório fazem sentido, e como tal são necessárias!
O nosso objetivo é realizar cálculos que permitam fazer a análise dos dados ao longo de períodos temporais, como os acumulados de vendas, ou mesmo períodos homólogos.
Neste caso, para calcularmos por exemplo, o valor acumulado ao ano para o Total de Vendas, Total de custos e Total de margem, teríamos de calcular 3 novas medidas!
Vendas Acumuladas / Ano = CALCULATE ( [Total de vendas]; DATESYTD(Datas[Data]) ) Custos Acumulados / Ano = CALCULATE ( [Total de custos]; DATESYTD(Datas[Data]) ) Margem Acumulada / Ano = CALCULATE ( [Total de margem]; DATESYTD(Datas[Data]) )
Mais importante ainda, para a mesma medida [Total de vendas] por exemplo, se pretendemos ter uma variação dos valores acumulados ao Trimestre ou ao Mês, teremos de criar mais 2 novas medidas para o efeito.
Vendas Acumuladas / Trimestre = CALCULATE ( [Total de vendas]; DATESQTD(Datas[Data]) ) Vendas Acumuladas / Mês = CALCULATE ( [Total de vendas]; DATESMTD(Datas[Data]) )
Como podemos observar, começamos a ter várias medidas só com um simples cenário.
Criar os Grupos de Cálculo
Com os Calculation Groups conseguimos criar um conjunto de medidas, que fazem parte do mesmo grupo onde aplicamos um item no nosso relatório (visual) e obtemos todos os cálculos do mesmo grupo.
No cenário o que pretendemos realizar é algo deste género:
Nome do Item (medida) = CALCULATE ( <medida>; DATESYTD(Datas[Data]) )
Onde o nome do Item será o nome da medida que vemos no relatório, e a medida <measure> será a medida que vamos utilizar para substituir pela medida criada no relatório.
Neste caso o código ou expressão que vamos utilizar é a seguinte:
Nome do Item (medida) = CALCULATE ( SELECTEDMEASURE (); DATESYTD(Datas[Data]) )
A Função SELECTEDMEASURE é utilizada para criar itens calculados e vai referenciar uma medida existente no contexto em que é aplicada.
Para criarmos os grupos de cálculo, uma das ferramentas que podemos incluir no Power BI é o Tabular Editor (Tabular Editor 3), uma ferramenta gratuita que integrada com o Power BI permite, entre outras coisas, criar os tão famosos Calculation Groups!
Depois de instalado o Tabular Editor, conseguimos aceder ao mesmo diretamente através do Power BI, acedendo às ferramentas externas.
Assim que entramos no Tabular Editor, os dados do nosso modelo são lidos, sendo que é apresentada a informação de todas as tabelas que temos no modelo.
Um grupo de cálculo [Calculation Group] é mais uma tabela com Items que irá ser apresentada no nosso modelo.
Para criarmos um Grupo de Cálculo basta acedermos às Tabelas e com o Botão Direito do Rato, criamos uma Tabela, que será um Calculation Group.
De seguida damos o nome à tabela, no caso irei chamar “Acumulados”.
Após termos a nossa tabela começamos a criar itens, um para cada “medida”.
Ao criarmos o ITEM, damos o nome e definimos a expressão, que funciona como um modelo (Template) da expressão que pretendemos. Neste caso para o grupo dos Acumulados, queremos criar um conjunto de itens que substitui as 3 expressões:
Vendas Acumuladas / Ano
Vendas Acumuladas / Trimestre
Vendas Acumuladas / Mês
Neste caso a parte do Ano / Trimestre / Mês é que é definida pela expressão DATESYTD, DATESQTD e DATESMTD respetivamente, mas a medida a ser analisada, é sempre a mesma, por exemplo [Total de vendas].
Desta forma podemos duplicar o Item calculado e criar as variantes da medida que quisermos.
Opções dos Grupos de cálculo
Existem 2 opções importantes quando estamos a criar um grupo de cálculo.
- A primeira opção é a coluna Name que é o nome pré-definido que surge quando criamos a tabela (Grupo de Cálculo). Este campo será utilizado no relatório para aplicar as categorias de campos (Itens) no visual do relatório. Se pretendermos mudar este nome para algo mais significativo no nosso modelo, podemos fazer através das propriedades.
- A segunda opção a ter em conta é a propriedade Ordinal, de cada um dos itens. Esta opção corresponde a um número, definido automaticamente que corresponde à ordem sobre a qual os vários itens do mesmo grupo são apresentados. Normalmente o valor apresentado é -1, que define uma ordem sequencial de acordo com a ordem em que foram criados os Itens. O que significa que se pretendemos alterar a ordem como os itens são apresentados no relatório, devemos alterar este valor para cada um dos itens. No caso podemos colocar 1, 2 e 3 para Ano, Trimestre e Mês.
Para terminar o exemplo, será criado mais um item dentro do grupo com a simples expressão: SELECTEDMEASURE(). Este Item representa a medida sem a alteração do filtro executada pela expressão CALCULATE.
Aplicar os Grupos de Cálculo
Para aplicar os grupos de cálculo, devemos guardar o modelo no Tabular Editor e atualizar o relatório no Power BI, a nova tabela surge automaticamente após atualizarmos o modelo.
Para aplicar os grupos de cálculo, a coluna “valor” deve ser colocada nas “categorias” (por assim dizer), neste caso será colocada nas colunas da matriz.
O valor a analisar será a medida pretendida.
Desta forma, no mesmo relatório (visual) e com apenas uma medida, conseguimos analisar um conjunto de valores em simultâneo.
Alterando a medida aplicada nos valores, por exemplo [Total de custos], conseguimos ver os 4 cálculos para a nova medida.
Outros conteúdos relevantes:

Como criar funções personalizadas no Power Query?
Neste vídeo vais aprender a criar funções personalizadas no Power Query, para para que possas adaptar os teus dados às tuas necessidades específicas. Vamos lá?

Como importar dados de uma pasta para o Microsoft Excel (Power Query)?
Neste vídeo tutorial, vou mostrar-vos como podem utilizar um comando muito simples, do Power Query, para importar para uma única tabela dados provenientes de uma pasta!