Adicionar nomes dinâmicos

No Power BI podemos criar medidas que nos permitem gerar cálculos dinâmicos com base em diversos parâmetros, no entanto os nomes dessas medidas nas visualizações só podem aparecer de uma de duas formas, ou com o nome própria medida ou com o alias que escolhermos na visualização.

De forma a tornarmos a informação mais percetível a melhor forma é que a não só os dados das medidas sejam dinâmicos, mas também o nome apresentado nos gráficos ou tabelas.

Podemos utilizando alguns recursos adicionais criar nomes dinâmicos para que os nossos relatórios apresentem informação dinâmica.

Considerando um modelo simples de vendas, queremos apresentar o cálculo da variação percentual do ano anterior, no entanto em vez de aparecer o nome simples de “Sales % vs PY” queremos substituir o PY pelo ano em questão.

O modelo é o apresentado abaixo:

O cálculo da variação é realizado através da fórmula abaixo:

Variation vs py = 
VAR Total_sales =
    SUM ( Orders[Sales] )
VAR Previous_year =
    CALCULATE (
        SUM ( Orders[Sales] ),
        FILTER ( ALL ( DateDim ), DateDim[Year] = MAX ( DateDim[Year] ) - 1 )
    )
VAR result =
    DIVIDE ( ( Total_sales - Previous_year ), Total_sales )
RETURN
    result

Quando colocamos esta informação numa matriz podemos verificar que a medida aparece sempre com o mesmo nome:

De modo a podermos ter a apresentação de nomes de acordo com o ano anterior temos de criar uma tabela independente com a informação dos anos e a descrição da medida:

Esta tabela apresenta não só os anos como todas as medidas que quisermos apresentar no detalhe da matriz, a mesma foi criada utilizando a seguinte formula:

Sales Measure Table = UNION(DISTINCT(DateDim[Year]) , ROW("Year", "Sales"))

O próximo passo é criar uma medida que nos permita calcular a medida certa (Sales ou Variation vs PY) de acordo com as linhas das tabelas anteriores:

MatrixValues = 
SWITCH (
    TRUE (),
    SELECTEDVALUE ( 'Sales Measure Table'[Year] ) = "Sales", SUM ( Orders[Sales] ),
    SELECTEDVALUE ( 'Sales Measure Table'[Year] ) = "Profit", SUM ( Orders[Profit] ),
    SELECTEDVALUE ( 'Sales Measure Table'[Year] )
        = FORMAT ( SELECTEDVALUE ( DateDim[YearMatrix] ), "#" ),
        IF (
            [Variation vs py] = BLANK ()
                || SELECTEDVALUE ( DateDim[YearMatrix] )
                    = MINX ( ALL ( DateDim[YearMatrix] ), DateDim[YearMatrix] ),
            BLANK (),
            FORMAT ( [Variation vs py], "0.00%" )
        )
)

Por fim apenas temos de criar as nossas visualizações com a utilização da medida MatrixValues e a coluna DinamicName como legenda ou coluna:

Configuração de uma Matriz:

  • Rows: Region
  • Columns: Year (Date Table) / DinamicName (Tabela independente)
  • Values: MatrixValues

Podemos assim ter informação dinâmica nos nomes das medidas.

Verifiquem também o excelente artigo de como conseguir legendas dinâmicas para a seleção de anos no blog do PeryTUS:

Improve UX: Show Year in Legend When Using Time Intelligence Measures

Deixe uma Resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão /  Alterar )

Google photo

Está a comentar usando a sua conta Google Terminar Sessão /  Alterar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Terminar Sessão /  Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão /  Alterar )

Connecting to %s

%d bloggers like this: