Pensar dentro da caixa (novamente)

Em junho do ano passado foi lançado um novo tipo de cartão no Power BI que permite apresentar várias medidas num único visual, assim como valores de referência ou imagens, levando a que um simples KPI pudesse ser elevado a um outro nível.

Em novembro apareceu então um novo tipo de slicer que também nos permite não só ter a informação básica dos valores a filtrar, mas aliar valores de referência, imagens e até tooltips.

Estes dois visuais são bastantes interessantes e conseguem fazer com que a nossa “história” fique mais rica, mas faz com que a produtividade aumente e a performance, pois o que dantes tinha de ser replicado em vários visuais agora é apenas num.

Vamos verificar como podemos utilizar estas novas funcionalidades considerando os dois visuais:

  • Cartões (KPI’s)de total de vendas para algumas categorias de produto
  • Cartões (KPI’s) com diversas medidas que pudessem ser utilizados para filtrar um gráfico

A combinação das novas visualizações com os field parameters poderá resolver as nossas questões de forma “rápida”, no entanto, temos de ter em atenção que as novas visualizações apresentam para já as seguintes limitações:

  • Cartão: Temos de utilizar medidas explicitas individuais ou caso utilizemos uma coluna a mesma será sumarizada
    • Exemplo criar um cartão com as vendas por categoria não é possível neste visual teremos de criar uma medida para cada categoria ou vários cartões individuais
  • Slicer: Não podemos utilizar medidas como valores de um slicer
    • Exemplo: Criar um slicer com os valores das medidas diretamente no novo slicer

Para resolver esta situação podemos utilizar as novas visualizações e dependendo do resultado que pretendemos com a ajuda dos field parameters, obtemos uma solução bastante flexível.

Cartões com várias categorias e uma única medida

Vamos considerar então os seguintes dados:

Como podemos verificar a tabela é composta por uma coluna e uma medida e queremos apresentar os totais num cartão único com as diferentes categorias.

Vamos então realizar os seguintes passos:

  • Criar uma visualização com o novo slicer
  • Field: coluna Class
  • Label é um campo de texto logo as formatações são perdidas pelo que temos de criar a medida Total Sales Label:
Total Sales Label = FORMAT([Total Sales], "\$#,0.00;(\$#,0.00);\$#,0.00")
  • Substituir a medida nas opções da Label
  • Formatar a categoria e a label de modo a parecer um cartão (opcional):
    • Label -> Position -> Above
    • Label -> Font Size -> 25
    • Callout Value -> Font Size -> 15
    • Callout Value -> Horizontal Alignment -> Center
    • Layout -> Single Row
  • Formatar os botões
    • Callout Values-> Default, Hover, Press, Selected
    • Buttons-> Default, Hover, Press, Selected

Ter em atenção que se quisermos apenas ter os valores como cartões temos de inativar as interações entre estes slicer e os restantes visuais.

Cartões com valores e opção para filtrar visuais

Vamos considerar o seguinte field parameters:

Podemos verificar que temos diversas medidas assim como uma coluna de grupo o que nos permite dinamicamente apresentar no slicer.

Seguindo os passos indicados atrás mas associando nas Labels o valor do field parameters vamos obter o seguinte resultado:

As opções de agregação não nos permitem apresentar os valores das métricas tal como aconteceria num cartão com a opção Show values of selected field.

Vamos então adicionar a seguinte medida ao nosso modelo:

Label Values =
SWITCH (
    SELECTEDVALUE ( Parameter[Parameter Order] ),
    0, FORMAT ( [Total Sales] / 1000, "#,### K €; (#,0 €)" ),
    1, FORMAT ( [Total Sales Due Date] / 1000, "#,### K €; (#,0 €)" ),
    2, FORMAT ( [Total Sales Ship Date] / 1000, "#,### K €; (#,0 €)" ),
    3, FORMAT ( [Total Cost] / 1000, "#,### K €; (#,0 €)" ),
    4, FORMAT ( [Total Cost Due Date] / 1000, "#,### K €; (#,0 €)" ),
    5, FORMAT ( [Total Cost Ship Date] / 1000, "#,### K €; (#,0 €)" ),
    6, FORMAT ( [Total Quantity], "#,0; (#,0)" ),
    7, FORMAT ( [Total Quantity Due Date], "#,0; (#,0)" ),
    8, FORMAT ( [Total Quantity Ship Date], "#,0; (#,0)" ),
    9, FORMAT ( [Margin] / 1000, "#,### K €; (#,0 €)" ),
    10, FORMAT ( [Margin Due Date] / 1000, "#,### K €; (#,0 €)" ),
    11, FORMAT ( [Margin Ship Date] / 1000, "#,### K €; (#,0 €)" ),
    12, FORMAT ( [Margin %], "#,0.0 %; (#,0.0 %)" ),
    13, FORMAT ( [Margin % Due Date], "#,0.0 %; (#,0.0 %)" ),
    14, FORMAT ( [Margin % Ship Date], "#,0.0 %; (#,0.0 %)" )
)

Esta fórmula permite-nos assim termos os valores nas Labels em cada field parameter correspondente:

Podemos agora realizar todas as formatações que pretendemos além disso podemos realizar a formatação do fundo do cartão, linhas e ao “hover” com as seguintes medidas:

Label Colors = 
SWITCH(
      TRUE(),
      SELECTEDVALUE(Parameter[Parameter Order]) < 3, "#E66C3775",
      SELECTEDVALUE(Parameter[Parameter Order]) < 6, "#118DFF75", 
      SELECTEDVALUE(Parameter[Parameter Order]) < 9, "#2BB73075", 
      SELECTEDVALUE(Parameter[Parameter Order]) < 12, "#D9B30075", 
      SELECTEDVALUE(Parameter[Parameter Order]) < 15, "#97979775"
     )

Label Colors Border = 
SWITCH(
      TRUE(),
      SELECTEDVALUE(Parameter[Parameter Order]) < 3, "#E66C37",
      SELECTEDVALUE(Parameter[Parameter Order]) < 6, "#118DFF", 
      SELECTEDVALUE(Parameter[Parameter Order]) < 9, "#2BB730", 
      SELECTEDVALUE(Parameter[Parameter Order]) < 12, "#D9B300", 
      SELECTEDVALUE(Parameter[Parameter Order]) < 15, "#979797"
     )

Label Colors Hover = 
SWITCH(
      SELECTEDVALUE(Parameter[Parameter Order]),
      0, "#E66C3750",
      1, "#118DFF50", 
      2, "#2BB73050", 
      3, "#D9B30050", 
      4, "#97979750"
      )

Com a utilização destas medidas e dos field parameters e as medidas acima podemos criar gráficos dinâmicos.

Deixe um comentário