Excel 如何在数据透视表上从总和切换到平均值?
我正在创建一个带有“Sum”和“Average”的组合框。这样,我想将数据透视表的值从sum切换到average,反之亦然 因此,Value字段有3列。我还有另一个代码,可以根据我点击的按钮来显示每一个。示例:如果单击2016,透视表上只显示2016值 如何从“总和”改为“平均”Excel 如何在数据透视表上从总和切换到平均值?,excel,vba,pivot-table,Excel,Vba,Pivot Table,我正在创建一个带有“Sum”和“Average”的组合框。这样,我想将数据透视表的值从sum切换到average,反之亦然 因此,Value字段有3列。我还有另一个代码,可以根据我点击的按钮来显示每一个。示例:如果单击2016,透视表上只显示2016值 如何从“总和”改为“平均” 如果您切换数据字段的函数,它会自动获得一个新名称,因此您必须在之后(而不是之前)更改名称 您可以选择Case您的组合框.Value或数据字段.Caption 下面是一个例子: Private Sub ComboBox2
如果您切换数据字段的
函数
,它会自动获得一个新名称,因此您必须在之后(而不是之前)更改名称
您可以选择Case
您的组合框.Value
或数据字段.Caption
下面是一个例子:
Private Sub ComboBox2_Change()
Dim pt As PivotTable
Set pt = ActiveSheet.PivotTables("PivotTable1")
With pt.DataFields(1)
Select Case ActiveSheet.ComboBox2.Value
Case "Average"
If .Caption = "Sum of 2016" Then
.Function = xlAverage
.Caption = "Average of 2016"
ElseIf .Caption = "Sum of 2017" Then
.Function = xlAverage
.Caption = "Average of 2017"
End If
Case "Sum"
If .Caption = "Average of 2016" Then
.Function = xlSum
.Caption = "Sum of 2016"
ElseIf .Caption = "Average of 2017" Then
.Function = xlSum
.Caption = "Sum of 2017"
End If
End Select
End With
End Sub
一般提示:如果您使用
.Function
或.Caption
,则它属于前面的和语句,在此代码中,该语句必须是透视的数据字段,而不是组合框。首先,两个案例中都有2个If
和1个End If
。
Private Sub ComboBox2_Change()
Dim pt As PivotTable
Set pt = ActiveSheet.PivotTables("PivotTable1")
With pt.DataFields(1)
Select Case ActiveSheet.ComboBox2.Value
Case "Average"
If .Caption = "Sum of 2016" Then
.Function = xlAverage
.Caption = "Average of 2016"
ElseIf .Caption = "Sum of 2017" Then
.Function = xlAverage
.Caption = "Average of 2017"
End If
Case "Sum"
If .Caption = "Average of 2016" Then
.Function = xlSum
.Caption = "Sum of 2016"
ElseIf .Caption = "Average of 2017" Then
.Function = xlSum
.Caption = "Sum of 2017"
End If
End Select
End With
End Sub