Ich habe eine Tabelle mit Messungen, in der jeder Datenpunkt mehrfach gemessen wird.
Ich möchte ein PivotChart erstellen, das den Durchschnittswert anzeigt und die Standardabweichung des Werts als Fehlerbalken verwendet.
Das habe ich bisher:
- Meine DataTable hat eine Kategoriespalte (Datum und Uhrzeit) und eine Wertespalte.
- Ich habe eine PivotTable, die mir den Durchschnittswert und auch die Standardabweichung generiert
- Mein Diagramm zeigt derzeit den Durchschnitt und die Standardabweichung als einzelne Datenreihen.
Ich hätte gerne die stdDev-Reihe (orange)nichtim Diagramm, aber verwenden Sie die Durchschnittsreihe (blau), um Fehlerbalken anzuzeigen. Diese Fehlerbalken sollten die Größe der Standardabweichungswerte haben.
Ich kann die Fehlerbalkenoption finden, sehe aber keine Möglichkeit, die (berechnete) Standardabweichung als Betrag zuzuweisen.
Die angegebenen Optionen verwenden nur die Standardabweichungüber die Werte der PivotTable.
Das istnichtwas ich möchte.
Aber wenn ich zu den erweiterten Optionen gehe:
Ich kann auch nur eine Methode finden, um eineFestbenutzerdefinierten Wert.
Obwohl das Feld die Auswahl eines Tabellenbereichs zulässt, kann ich dies nur für einenSpezifischAbschnitt. Das heißt, ich kann die entsprechenden Werte in der Pivot-Tabelle auswählen und mein Diagramm erhalten:
Die Fehlerbalken sind jetzt so, wie ich sie haben möchte, aber jede Änderung der Pivot-Tabellenstruktur, z. B. das Hinzufügen neuer Daten, geht die Verbindung verloren:
Ich möchte, dass die Fehlerbalken immer den berechneten Wert derselben Zeile verwenden. Ist das möglich?
( Und ich möchte auch die orangefarbene Serie ausblenden, aber das ist zweitrangig. )
Antwort1
Mit VBA würde ich eineEreignisdas immer dann ausgelöst wird, wenn irgendetwas im Pivot-Diagramm aktualisiert wird. In diesem Fall würde ich Code schreiben, der die richtigen Zellreferenzen für Fehlerbalken einfügt. Wenn also das Pivot-Diagramm aktualisiert wird, werden auch die Fehlerbalkenreferenzen aktualisiert.
Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)
Dim rng As Range
Set rng = Me.PivotTables("PivotTable1").DataBodyRange.PivotField.DataRange.Offset(, 1)
With Me.ChartObjects("Chart 1").Chart.SeriesCollection(1)
.HasErrorBars = True
.ErrorBar Direction:=xlY, Include:=xlBoth, _
Type:=xlErrorBarTypeCustom, _
Amount:=rng, _
MinusValues:=rng
End With
End Sub
Möglicherweise müssen Sie den Pivot-Namen "PivotTable1"
und den Diagrammnamen "Chart 1"
in die tatsächlichen Namen in Ihrem Blatt ändern.
Dieser Code muss in das entsprechende Tabellenmodul im VBA-Editor eingefügt werden, der mit Alt+ geöffnet werden kann F11.