有没有一种方法可以自动或编程方式在Excel的数据透视图中插入动态错误条?

tuwxkamq  于 2023-05-19  发布在  其他
关注(0)|答案(1)|浏览(216)

我有一个数据透视图,它使用平均值来绘制每个分组点。我想添加错误条,但Excel似乎不支持自动生成错误条(或者它支持吗?).
我是否应该在VBA中生成一个标准的图表/数据透视图来包含此功能?我会失去大部分的好切片机功能(如果标准图表是解决方案),这让我很难过…
编辑:让我们看一个例子!
下面是我用另一个工作表中的数据制作的数据透视图。
Example

**我想添加自动计算平均值标准差的误差条。**但是,由于每次我为过滤字段的特定组合过滤透视表时都会计算新的平均值,因此我不能在每次更改数据过滤时手动添加误差条!

pxyaymoc

pxyaymoc1#

我想我找到了一个方法来实现你想要的目标。我创建了两个数据透视表。一个包含平均值(“Sheet 1”上的“PivotTable 1”),另一个包含标准差(“Sheet 2”上的“PivotTable 2”)。要同时在两个表上应用过滤器,需要使用切片器连接两个数据透视表(“数据透视表分析”->“添加切片器”,然后选择切片器并转到“切片器”->“报表连接”)。在这些准备工作之后,下面的代码在Windows上适用于Office365

Sub StdDevErrorBarsToPT()
    Dim cht As chart
    Dim ser As series
    Dim ptAve As PivotTable
    Dim ptDev As PivotTable
    Dim dataRange As Range
    Set ptAve = Worksheets("Sheet1").PivotTables("PivotTable1")
    Set ptDev = Worksheets("Sheet2").PivotTables("PivotTable2")
    
    Set cht = Worksheets("Sheet1").Shapes.AddChart2( _
        251, xlColumnClustered).chart
        
    ' Set the data source for the chart
    cht.SetSourceData Source:=ptAve.TableRange1
    
    For i = 1 To cht.SeriesCollection.Count
    ' Set series object
        Set ser = cht.SeriesCollection(i)
        Set dataRange = ptDev.DataBodyRange.Columns(i)
        cht.SeriesCollection(i).HasErrorBars = True
        ser.ErrorBar _
        Direction:=xlY, _
        Include:=xlErrorBarIncludeBoth, _
        Type:=xlErrorBarTypeCustom, _
        Amount:=dataRange, _
        MinusValues:=dataRange
    Next i

End Sub

相关问题