Draaitabelgrafiekkleuren - Excel-tips

Inhoudsopgave

Shari stuurt de Excel-vraag van deze week in.

Ik heb het antwoord op deze vraag niet kunnen vinden van onze IT-afdeling, Excel-helpbestanden of Microsoft Excel online-help, en ik hoop dat je kunt helpen.

Ik analyseer Excel-gegevens over een periode van twintig jaar en moet voor elk jaar Excel-cirkeldiagrammen maken. De Excel-grafieken zijn gebaseerd op een draaitabel (of Draaigrafiek in Excel 2000), met het jaar als paginaveld. Het probleem is dat niet alle jaren dezelfde items bevatten, dus elke Excel-grafiek zal een andere kleur gebruiken voor hetzelfde taartpunt.

We proberen gegevens over deze 20 jaar te vergelijken, dus het is essentieel om dezelfde kleuren voor elke grafiek te hebben. Ik moet uiteindelijk elke veel segmenten in veel grafieken wijzigen om overeen te komen met de eerste, soms meerdere keren omdat de kleuren kunnen veranderen als de gegevens veranderen en ik de draaitabel waarop de grafiek is gebaseerd, opnieuw moet berekenen.

MrExcel heeft de draaigrafiek voor het eerst uitgeprobeerd. Draaigrafieken zijn een zeer krachtige manier om een ​​diagram te maken voor verschillende gegevensscenario's, maar ze hebben deze vervelende fout. Ik heb de draaitabel opgezet met klasjaar als rij, jaar als pagina. Ik vroeg om het klasjaar om te sorteren op aflopende scores. Als u het draaigrafiek van jaar tot jaar verandert, veranderen de kleuren van de cirkelsegmenten die aan Freshman zijn gekoppeld. Sommige jaren zijn er leden uit alle vier de klassen, andere jaren zijn er leden uit slechts 3 klassen.

Voorbeeld van draaigrafiek

Excel past een standaardvolgorde van kleuren toe op elk segment, dus de overeenkomstige kleuren zullen van jaar tot jaar veranderen. Ik zie mijn manager vol walging zijn hoofd schudden terwijl ik hem deze grafieken overhandigde.

Er is een manier met een visuele basismacro om dit probleem op te lossen. Als u de datalabels instelt om de labelnaam weer te geven, dan is het mogelijk om de naam van elk segment te vinden vanuit visual basic. Als u eenmaal een naam heeft, kunt u de kleur van dat segment opnieuw kleuren op basis van de waarde van de naam.

Voorbeeld van draaigrafiek

Excel gebruikte de bovenstaande kleuren voor 1990, maar in 1991 veranderen de kleuren naarmate het aantal items en hun volgorde verandert:

De volgende macro is hard gecodeerd voor Shari's specifieke voorbeeld waar ze mogelijke waarden heeft van Freshman, Sophomore, Junior en Senior. Door extra Case-statements met verschillende kleurindexen toe te voegen, kunt u dit aanpassen aan uw specifieke situatie.

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

Start de VB-editor met alt-F11. Wel invoegen - Module. Procedure invoegen. Typ ColorPieSlices als de naam en klik op OK. Voer de bovenstaande macro in.

Wijs de macro toe aan een snelkoppeling in Excel om het leven gemakkelijker te maken. In Excel, doe Extra - Macro. Markeer ColorPieSlices en klik op de optieknop. Typ een "d" in het sneltoetsvak. Klik op OK en sluit het dialoogvenster Macro door op de "x" in de rechterbovenhoek te klikken. Nu, nadat u uw draaigrafiek hebt gewijzigd, kunt u op Ctrl + D drukken om de cirkelsegmenten opnieuw te kleuren naar uw gewenste kleurenset.

Interessante artikelen...