Eu tenho uma tabela de medidas, com cada ponto de dados sendo medido várias vezes.
Gostaria de criar um gráfico dinâmico que exiba o valor médio e use o desvio padrão do valor como barras de erro.
Isto é o que tenho até agora:
- Meu DataTable possui uma coluna de categoria (Data e Hora) e uma coluna de valor.
- Tenho uma Tabela Dinâmica que me gera o valor médio e também gera o desvio padrão
- Atualmente, meu gráfico mostra a média e o stdDev como séries de dados individuais.
Eu gostaria de ter a série stdDev (laranja)nãono gráfico, mas tem a série média (azul) para mostrar barras de erro. Essas barras de erro devem ter o tamanho dos valores stdDev.
Posso encontrar a opção da barra de erros, mas não vejo uma maneira de atribuir o StdDev (calculado) como magnitude.
As opções fornecidas usam apenas o desvio padrãoentre os valores da tabela dinâmica.
Isso énãoo que eu quero.
Mas se eu for para as opções avançadas:
Também só consigo encontrar um método para especificar umfixovalor customizado.
Embora o campo pareça permitir a seleção de um intervalo de tabelas, só posso fazer isso para umespecíficoseção. ou seja, posso selecionar os valores correspondentes na tabela dinâmica e obter meu gráfico:
As barras de erro agora estão como eu quero, mas qualquer alteração na estrutura da tabela dinâmica, ou seja, adicionar novas datas, perde a conexão:
Quero que as barras de erro sempre usem o valor calculado da mesma linha - isso pode ser feito?
(E também quero esconder a série laranja, mas isso é secundário.)
Responder1
Usando VBA, eu criaria umeventoque é acionado sempre que algo no gráfico dinâmico é atualizado. Nesse caso, eu escreveria um código que preenchesse as referências de células corretas para barras de erro. Portanto, sempre que o gráfico dinâmico é atualizado, as referências da barra de erro também são atualizadas.
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
Pode ser necessário alterar o nome do pivô "PivotTable1"
e o nome do gráfico "Chart 1"
para os nomes reais em sua planilha.
Este código deve ser colocado dentro do módulo da planilha correspondente no editor VBA, que pode ser aberto com Alt+ F11.