Cores do gráfico da tabela dinâmica - Dicas do Excel

Índice

Shari envia a pergunta do Excel desta semana.

Não consegui encontrar a resposta para esta pergunta em nosso departamento de TI, nos arquivos de ajuda do Excel ou na ajuda online do Microsoft Excel e espero que você possa ajudar.

Estou analisando dados do Excel por um período de vinte anos e preciso fazer gráficos de pizza do Excel para cada ano. Os gráficos do Excel são baseados em uma tabela dinâmica (ou Gráfico Dinâmico no Excel 2000), com o ano como um campo de página. O problema é que nem todos os anos contêm os mesmos itens, então cada gráfico do Excel usará uma cor diferente para o mesmo pedaço de torta.

Estamos tentando comparar os dados ao longo desses 20 anos, portanto, ter as mesmas cores para cada gráfico é essencial. Acabo tendo que alterar cada uma das muitas fatias em muitos gráficos para corresponder ao primeiro, às vezes várias vezes porque as cores podem mudar se os dados mudarem e eu tenho que recalcular a tabela dinâmica na qual o gráfico se baseia.

MrExcel experimentou o gráfico dinâmico pela primeira vez. Os gráficos dinâmicos são uma maneira muito poderosa de criar um gráfico para vários cenários diferentes de dados, mas eles têm essa falha irritante. Eu configurei a tabela dinâmica com ano de classe como a linha, ano como a página. Pedi que o ano da aula fosse classificado com base nas pontuações decrescentes. Conforme você altera o gráfico dinâmico de ano para ano, as cores das fatias de pizza associadas ao Freshman mudam. Em alguns anos, há membros de todas as quatro classes, em outros anos, há membros de apenas 3 classes.

Amostra de gráfico dinâmico

O Excel aplica uma ordem padrão de cores a cada fatia, de forma que as cores correspondentes mudem de ano para ano. Posso ver meu gerente balançando a cabeça em desgosto enquanto lhe entrego esses gráficos.

Existe uma maneira com uma macro visual básica de resolver este problema. Se você configurar os datalabels para exibir o nome do rótulo, será possível encontrar o nome de cada fatia no Visual Basic. Assim que tiver um nome, você pode recolorir a cor dessa fatia com base no valor do nome.

Amostra de gráfico dinâmico

O Excel usou as cores acima em 1990, mas em 1991 as cores mudam conforme o número de itens e sua sequência muda:

A macro a seguir é codificada para o exemplo específico de Shari, onde ela tem valores possíveis de Freshman, Sophomore, Junior e Senior. Adicionando instruções Case adicionais com índices de cores diferentes, você pode personalizar isso para lidar com sua situação particular.

Sub ColorPieSlices() ' Copyright 1999.com ' This macro will re-color the pie slices in a chart ' So that slices for a specific category are similarly colored ' Select the chart before calling the macro ' ' Find the number of pie slices in this chart NumPoints = ActiveChart.SeriesCollection(1).Points.Count ' Loop through each pie slice For x = 1 To NumPoints ' Save the label currently attached to this slice If ActiveChart.SeriesCollection(1). _ Points(x).HasDataLabel = True Then SavePtLabel = ActiveChart.SeriesCollection(1) _ .Points(x).DataLabel.Text Else SavePtLabel = "" End If ' Assign a new data label of just the point name ActiveChart.SeriesCollection(1).Points(x).ApplyDataLabels Type:= _ xlDataLabelsShowLabel, AutoText:=True ThisPt = ActiveChart.SeriesCollection(1).Points(x).DataLabel.Text ' Based on the label of this slice, set the color Select Case ThisPt Case "Freshman" ActiveChart.SeriesCollection(1). _ Points(x).Interior.ColorIndex = 3 Case "Sophomore" ActiveChart.SeriesCollection(1). _ Points(x).Interior.ColorIndex = 4 Case "Junior" ActiveChart.SeriesCollection(1). _ Points(x).Interior.ColorIndex = 5 Case "Senior" ActiveChart.SeriesCollection(1). _ Points(x).Interior.ColorIndex = 6 Case Else ' Add code here to handle an unexpected label End Select ' Return the label to it's original pre-macro state ActiveChart.SeriesCollection(1). _ Points(x).DataLabel.Text = SavePtLabel Next x End Sub

Inicie o editor VB com alt-F11. Insira - Módulo. Procedimento de inserção. Digite ColorPieSlices como o Nome e clique em OK. Insira a macro acima.

Para facilitar a vida, atribua a macro a um atalho no Excel. No Excel, faça Ferramentas - Macro. Realce ColorPieSlices e clique no botão de opções. Na caixa da tecla de atalho, digite um "d". Clique em OK e feche a caixa de diálogo Macro clicando no "x" no canto superior direito. Agora, depois de alterar seu Gráfico Dinâmico, você pode pressionar Ctrl + D para recolorir as fatias da pizza com o conjunto de cores de sua preferência.

Artigos interessantes...