각 데이터 포인트가 여러 번 측정되는 측정 테이블이 있습니다.
평균값을 표시하고 값의 표준 편차를 오류 막대로 사용하는 피벗 차트를 만들고 싶습니다.
이것이 내가 지금까지 가지고 있는 것입니다:
- 내 DataTable에는 하나의 범주 열(날짜 및 시간)과 하나의 값 열이 있습니다.
- 평균값을 생성하고 표준 편차도 생성하는 피벗 테이블이 있습니다.
- 내 차트에는 현재 평균 및 표준 편차가 개별 데이터 시리즈로 표시됩니다.
stdDev 시리즈(주황색)를 갖고 싶습니다~ 아니다그래프에는 오류 막대를 표시하기 위한 평균 계열(파란색)이 있습니다. 이러한 오차 막대는 stdDev 값의 크기를 가져야 합니다.
오류 표시줄 옵션을 찾을 수 있지만 (계산된) StdDev를 크기로 할당하는 방법이 표시되지 않습니다.
주어진 옵션은 표준편차만 사용합니다.피봇 테이블의 값 전체에 걸쳐.
이것은~ 아니다내가 원하는 것.
하지만 고급 옵션으로 이동하면 다음과 같습니다.
또한결정된사용자 정의 값.
해당 필드에서는 테이블 범위를 선택할 수 있는 것처럼 보이지만특정한부분. 즉, 피벗 테이블에서 해당 값을 선택하고 그래프를 얻을 수 있습니다.
이제 오류 막대는 원하는 대로 표시되지만 피벗 테이블 구조가 변경되면(예: 새 날짜 추가) 연결이 끊어집니다.
오류 막대가 항상 같은 행의 계산된 값을 사용하도록 하고 싶습니다. 이렇게 할 수 있습니까?
(그리고 주황색 계열도 숨기고 싶지만 그건 부차적입니다.)
답변1
VBA를 사용하여이벤트피벗 차트의 항목이 업데이트될 때마다 실행됩니다. 이 경우 오류 막대에 대한 올바른 셀 참조를 채우는 코드를 작성합니다. 따라서 피벗 차트가 업데이트될 때마다 오류 막대 참조도 업데이트됩니다.
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
"PivotTable1"
피벗 이름 과 차트 이름을 "Chart 1"
시트의 실제 이름으로 변경해야 할 수도 있습니다 .
Alt이 코드는 + 로 열 수 있는 VBA 편집기의 해당 시트 모듈 안에 넣어야 합니다 F11.