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
Olá,
No meu caso os meus valores estratificam por mês.
Quando sigo os passos que você sugere ele cria um cabeçalho de linha para cada mês. Tem uma maneira de resolver isso ?
GostarGostar
Boa tarde Silvia,
Quando refere que ele cria um cabeçalho por cada mês estamos a falar de uma hierarquia nas linhas (duas colunas ou mais de dados?)
GostarGostar
Boa Tarde, Miguel
Isso mesmo, são duas ou mais colunas de dados que estão segmentadas de acordo com o mês (usei uma dCalendário no campo coluna da matriz)
GostarGostar