Cálculos Visuais em Power BI Parte II: Funções COLLAPSE e EXPAND
Neste novo artigo, vou mostrar-te mais um conjunto de novas funções DAX, disponíveis para os cálculos visuais, assim como os outros modelos para aplicar os cálculos de uma forma mais rápida num determinado visual. Vamos lá?
Caso pretendas, podes consultar a primeira parte deste artigo, aqui!
Não percas aqui o cenário de exemplo que partilho contigo, assim como o processo passo a passo. Se tiveres alguma dúvida, envia-nos a uma mensagem... ficamos à tua espera!
Faça aqui o download dos seus ficheiros de apoio!
Percentagem sobre o elemento principal
Este modelo de cálculo visual permite calcular a percentagem de um valor em relação ao seu parente, mais uma vez, se fizermos a analogia com a opção “Mostrar valores como…” [Show values as…] de uma Tabela Dinâmica encontramos o mesmo “modelo” de cálculo.
O modelo aplicado é o seguinte…
Que constrói a seguinte expressão:
Percentagem do elemento principal = DIVIDE([Campo]; COLLAPSE([Campo]; Eixo))
O modelo de cálculo vai dividir o campo pretendido, neste caso a expressão [Total de Vendas] e utilizar a função COLLAPSE, que permite subir níveis na hierarquia do elemento visual. Neste caso a função COLLAPSE está a ser utilizada como o denominador no cálculo da divisão para mostrar a percentagem do valor.
Se voltarmos ao relatório, podemos verificar o cálculo aplicado. Nota que o cálculo não está formatado, é uma opção que ainda não está disponível, à data do artigo para um cálculo visual. No entanto podes utilizar a função FORMAT para formatar a expressão e aplicar o formato de percentagem.
Percentagem do elemento principal = FORMAT( DIVIDE([Total de vendas]; COLLAPSE([Total de vendas]; ROWS)); "0,0%" )
Visualizar o elemento principal: Função COLLAPSE
A Função COLLAPSE permite visualizar um valor / expressão no contexto do nível superior. Significa que permite navegar na hierarquia do visual e efetuar cálculos num nível superior. Com esta função podemos apenas “navegar” na hierarquia, ou efetuar o cálculo.
Utilização da função COLLAPSE como navegador na hierarquia, que funciona como um “modificador” da função calculate.
Elemento principal = CALCULATE( [Total de vendas]; COLLAPSE(ROWS;1) -- Navegar na hierarquia 1 nível acima )
Utilização da função COLLAPSE como valor escalar que permite calcular uma expressão e navegar na hierarquia.
Elemento principal = COLLAPSE([Total de vendas];ROWS;1) -- Calcular a expressão 1 nível acima
Neste caso para o “contexto visual” estamos a consultar a expressão [Total de Vendas] no nível superior, a função COLLAPSE reduz o número de linhas visível na tabela.
Os parâmetros da função são então os seguintes:
- Expression: A expressão a ser calculada.
- Axis: O eixo sobre o qual é definida a hierarquia, neste caso ROWS
- Column: Neste caso podemos especificar uma coluna da tabela para definir a hierarquia, por exemplo [Ano]. Neste cenário a coluna significa uma exclusão, ou seja, vamos para o nível mais próximo da hierarquia que não contem o Ano.
- N: Indicamos o nível da hierarquia para onde pretendemos navegar, sendo que, por defeito o valor é 1, significa que subimos 1 nível na hierarquia. Se especificarmos 2, por exemplo, subimos 2 níveis.
Um exemplo da fórmula quando especificamos uma coluna…
Nível que não contem Ano = COLLAPSE([Total de vendas];[Ano])
Função COLLAPSEALL
Este resultado pode ser calculado de forma semelhante utilizando a função COLLAPSEALL, que retorna o contexto visual no nível máximo da hierarquia. Com uma expressão utilizada, por exemplo [Total de Vendas], a função calcula o valor ao nível máximo da hierarquia.
Nível máximo da Hierarquia = COLLAPSEALL([Total de vendas];ROWS)
Função EXPAND
A função EXPAND funciona como o oposto à função COLLAPSE, onde neste caso passamos para um nível da hierarquia abaixo no contexto visual. Contudo, se pensarmos bem ao descermos um nível, encontramos um conjunto de valores que não podem ser devolvidos de uma forma escalar, ou seja, num único valor.
Por exemplo, se estamos no contexto visual do trimestre, ao expandir para o nível seguinte encontramos valores em todos os 3 meses desse trimestre, assim quando usamos a função EXPAND, temos de agregar de certa forma os valores, para obter um único valor (escalar).
Média de Valores Associados = EXPAND( AVERAGE([Total de vendas]);ROWS )
Os parâmetros da função semelhantes à função COLLAPSE e são os seguintes:
- Expression: A expressão a ser calculada / avaliada no novo contexto visual.
- Axis: O eixo sobre o qual é definida a hierarquia, neste caso ROWS
- Column: Neste caso podemos especificar uma coluna da tabela para definir a hierarquia, por exemplo [Ano]. Neste cenário a coluna representa o valor que pretendemos analisar.
- N: Indicamos o nível da hierarquia para onde pretendemos navegar, sendo que, por defeito o valor é 1, significa que descemos 1 nível na hierarquia. Se especificarmos 2, por exemplo, descemos 2 níveis.
Por exemplo a fórmula seguinte mostra o maior valor no nível abaixo da hierarquia.
Maior Venda (Trimestre) = EXPAND( MAX([Total de vendas]);[Trimestre] )
No cenário normal, em que descemos 1 nível, conseguimos verificar a maior venda no nível seguinte.
Maior Venda (Sub-Item) = EXPAND( MAX([Total de vendas]);ROWS )
Função EXPANDALL
Tal como a função COLLAPSEALL, existe a função EXPANDALL! Tal como o nome indica retorna o “contexto visual” ao nível mais detalhado da hierarquia, o nível mais abaixo da hierarquia.
Na seguinte expressão…
Menor Venda (Detalhe) = EXPANDALL(MIN([Total de vendas]);ROWS)
Obtemos o menor valor, expandido a hierarquia ao nível mais baixo de acordo com o valor que estamos a consultar no contexto do visual.
Estas 4 novas funções permitem-nos navegar sobre valores no contexto do visual atual, que facilitam bastante os cálculos a serem realizados.
Outros conteúdos relevantes:
PowerBI - Conheça a Função DAX USERELATIONSHIP
Neste vídeo tutorial, abordamos a função DAX USERELATIONSHIP, que nos permite analisar numa tabela ou gráfico, o mesmo indicador em função de 2 relações distintas.
Power BI: Cálculos Visuais: Funções COLLAPSE e EXPAND
Neste novo vídeo, vou mostrar-te as restantes novas funções DAX, disponíveis para os cálculos visuais! Vamos lá?