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.
Falta o botão do gosto
[Thumbs up sign]
Henrique Miranda
[View my profile on LinkedIn]
GostarGostar
Sempre atento :D.
Já atualizei com o botão de gosto.
Obrigado pelo comentário.
GostarGostar
Muito obrigada! Me ajudou muito!
GostarGostar