Formatação condicional de cabeçalhos

Tabelas e matrizes

Na utilização de tabelas e matrizes uma ferramenta muito útil é a formatação condicional. No fórum do Power BI (PBI) são recorrentes as questões sobre esta funcionalidade, no entanto tem a limitação de apenas poder ser aplicada a valores.

Esta limitação reflete-se na formatação ds cabeçalhos das colunas/linhas, e surgem por diversas vezes a questão de como se pode alternar as cores desses mesmos cabeçalhos. No entanto quando efetuamos a formatação do cabeçalho ou ficamos com a coluna selecionada com a cor especificada (opção de aplicar formatação ao cabeçalho ativada) ou então com todos os cabeçalhos iguais.

A formatação condicional não pode ser aplicada ao cabeçalho, no entanto podemos:

  • Aplicar a formatação dos valores ao cabeçalho
  • Aplicar formatação condicional aos valores (cor letra e/ou fundo)

Baseado nestas duas premissas podemos ter uma forma de atingir o resultado que queremos que é aplicar uma formatação condicional aos cabeçalhos.

A primeira premissa é que no lugar das nossas categorias para criar as colunas das matrizes ou tabelas podemos utilizar medidas por cada valor de cabeçalho que queremos customizar.

No meu exemplo temos 3 categorias A, B e C que queremos identificar com cores diferentes, assim criamos as seguintes 3 medidas:

CAT A = CALCULATE(SUM(Table1[Value]);Table1[Cat] = "A")

CAT B = CALCULATE(SUM(Table1[Value]);Table1[Cat] = "B")

CAT C = CALCULATE(SUM(Table1[Value]);Table1[Cat] = "C")

Ao utilizarmos estas medidas como valores da nossa tabelas/matriz temos de realizar os seguintes passos:

  • Opções tabela/matriz
  • Field Formatting
  • Selecionar cada uma das medidas e escolher a cor de fundo que queremos para cada uma
    • No meu exemplo A = Verde, B = Amarelo, C = Vermelho e a cor do texto branco
  • Ativar a opção aplicar ao cabeçalho
  • Para cada medida aplicar a formatação condicional
    • Fundo: branco
    • Cor texto: preto
    • Escolher a opção divergente e a mesma cor nos dois valores disponíveis

Como podem ver abaixo os cabeçalhos tem cores diferentes e os valores da tabela estão formatados da mesma forma.

No que diz respeito aos cabeçalhos das linhas na matriz a forma de conseguir o resultado vai ser um pouco diferente uma vez que não temos a opção aplicar aos cabeçalhos das linhas.

Como tal teremos de criar uma medida com o seguinte Código:

Sub_Category_Measure = SELECTEDVALUE(Table1[Sub])
  • Colocar esta medida antes das outras 3 medidas
    • Isto fará uma coluna de valores com o mesmo valor dos cabeçalhos das linhas
  • Diminuir o tamanho da coluna on temos a descrição das linhas ao mínimo
  • Criar duas medidas para o formato condicional.

Background = SWITCH([Sub_Category_Measure]; "aa";"#5DFF0E";"bb";"#E4FF09";"cc";"#FF6E00")

Font text = SWITCH([Sub_Category_Measure] ; "DifferentTextFromSUB";"#000000";"#FFFFFF")
  • Aplicar a formatação condicional a medida Sub_Category_Measure nas opções de fundo e de cor do texto.

Na imagem acima podemos verificar a coluna que temos de esconder.

Caso se trate de colunas com pai e filhos necessitaremos de fazer alguns ajustes às medidas.

As medidas acimas tem um formato estático no entanto com a formulação correta podemos fazer com que o cabeçalho seja dinâmico por exemplo alterando a formula anterior para:

Background =
SWITCH (
    TRUE ();
    [Sub_Category_Measure] = "aa"; "#5DFF0E";
    [Sub_Category_Measure] = "bb"; "#E4FF09";
    [Sub_Category_Measure] = "cc"
        && [CAT A] +  [CAT B] + [CAT C] < 500; "#000000";
    [Sub_Category_Measure] = "cc"
        && [CAT A] +  [CAT B] + [CAT C] > 500; "#FF6E00"
)

Na fórmula acima o cabeçalho da categoria CC muda entre preto e vermelho conforme a soma das 3 medidas A, B e C.(exemplo não se encontra no ficheiro).

Esta opção dinâmica apenas é possível nas linhas uma vez que estamos a falar de uma medida no cabeçalho das colunas estamos limitados pelas opções do PBI.

O ficheiro com os exemplos encontra-se disponível neste link.

2 opiniões sobre “Formatação condicional de cabeçalhos

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: