
У меня есть таблица измерений, в которой каждая точка данных измеряется несколько раз.
Я хотел бы создать PivotChart, которая отображает среднее значение и использует стандартное отклонение значения в качестве планок погрешности.
Вот что у меня есть на данный момент:
- В моей таблице данных есть один столбец категории (Дата и время) и один столбец значений.
- У меня есть сводная таблица, которая генерирует среднее значение, а также стандартное отклонение.
- В настоящее время на моем графике отображаются среднее значение и стандартное отклонение как отдельные ряды данных.
Я хотел бы иметь серию 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"
на фактические имена в вашем листе.
Этот код необходимо поместить в соответствующий модуль листа в редакторе VBA, который можно открыть с помощью Alt+ F11.