Pivot Table Chart Colors - Excel-Tipps

Inhaltsverzeichnis

Shari sendet die Excel-Frage dieser Woche.

Ich konnte die Antwort auf diese Frage nicht von unserer IT-Abteilung, Excel-Hilfedateien oder der Microsoft Excel-Online-Hilfe finden und hoffe, dass Sie helfen können.

Ich analysiere Excel-Daten über einen Zeitraum von zwanzig Jahren und muss für jedes Jahr Excel-Kreisdiagramme erstellen. Die Excel-Diagramme basieren auf einer Pivot-Tabelle (oder einem Pivot-Diagramm in Excel 2000) mit dem Jahr als Seitenfeld. Das Problem besteht darin, dass nicht alle Jahre dieselben Elemente enthalten, sodass jedes Excel-Diagramm für dasselbe eine andere Farbe verwendet Kuchenstück.

Wir versuchen, Daten über diese 20 Jahre hinweg zu vergleichen. Daher ist es wichtig, für jedes Diagramm die gleichen Farben zu haben. Am Ende muss ich jeweils viele Slices in vielen Diagrammen ändern, um mit dem ersten übereinzustimmen, manchmal mehrmals, da sich die Farben ändern können, wenn sich die Daten ändern, und ich muss die Pivot-Tabelle neu berechnen, auf der das Diagramm basiert.

MrExcel hat das Pivot-Diagramm zum ersten Mal ausprobiert. Pivot-Diagramme sind eine sehr leistungsstarke Methode zum Erstellen eines Diagramms für verschiedene Datenszenarien, weisen jedoch diesen lästigen Fehler auf. Ich habe die Pivot-Tabelle mit dem Klassenjahr als Zeile und dem Jahr als Seite eingerichtet. Ich bat darum, das Klassenjahr nach absteigenden Punktzahlen zu sortieren. Wenn Sie das Pivot-Diagramm von Jahr zu Jahr ändern, ändern sich die Farben der mit Freshman verknüpften Tortenscheiben. In einigen Jahren gibt es Mitglieder aus allen vier Klassen, in anderen Jahren gibt es Mitglieder aus nur drei Klassen.

Beispiel-Pivot-Diagramm

Excel wendet auf jedes Slice eine Standardreihenfolge von Farben an, sodass sich die entsprechenden Farben von Jahr zu Jahr ändern. Ich kann sehen, wie mein Manager angewidert den Kopf schüttelt, als ich ihm diese Karten reichte.

Es gibt eine Möglichkeit mit einem visuellen Grundmakro, dieses Problem zu lösen. Wenn Sie die Datenetiketten so einstellen, dass der Beschriftungsname angezeigt wird, können Sie den Namen jedes Slice in Visual Basic ermitteln. Sobald Sie einen Namen haben, können Sie die Farbe dieses Slice basierend auf dem Wert des Namens neu einfärben.

Beispiel-Pivot-Diagramm

Excel verwendete die obigen Farben für 1990, aber 1991 ändern sich die Farben, wenn sich die Anzahl der Elemente und ihre Reihenfolge ändert:

Das folgende Makro ist für Sharis spezifisches Beispiel fest codiert, in dem sie mögliche Werte für Freshman, Sophomore, Junior und Senior hat. Durch Hinzufügen zusätzlicher Case-Anweisungen mit unterschiedlichen Farbindizes können Sie diese an Ihre spezielle Situation anpassen.

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

Starten Sie den VB-Editor mit Alt-F11. Einfügen - Modul. Verfahren einfügen. Geben Sie ColorPieSlices als Namen ein und klicken Sie auf OK. Geben Sie das obige Makro ein.

Weisen Sie das Makro einer Verknüpfung in Excel zu, um das Leben zu vereinfachen. Führen Sie in Excel Extras - Makro aus. Markieren Sie ColorPieSlices und klicken Sie auf die Schaltfläche Optionen. Geben Sie im Tastenfeld ein "d" ein. Klicken Sie auf OK und schließen Sie das Dialogfeld Makro, indem Sie auf das "x" in der oberen rechten Ecke klicken. Nachdem Sie Ihr Pivot-Diagramm geändert haben, können Sie Strg + D drücken, um die Kreisscheiben auf Ihren bevorzugten Farbsatz neu einzufärben.

Interessante Beiträge...