Como Utilizar Grupos de Cálculo no DAX

Quando estamos a criar um modelo de dados e utilizamos expressões DAX, chegamos a um ponto em que começamos a ter várias 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”, como 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.

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.Uma imagem com texto, captura de ecrã, software, Software de multimédia

Descrição gerada automaticamente

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.


Comments

Leave a Reply

Discover more from Exceldriven

Subscribe now to keep reading and get access to the full archive.

Continue reading