【问题标题】:CalculatedField in ExcelExcel中的计算字段
【发布时间】:2013-10-28 12:01:49
【问题描述】:

假设我在 excel 中有两列,日期为行,我想创建一个包含一些计算字段的数据透视表。计算字段的公式为 Column1 / AVERAGE(Column2),具体取决于所选日期。

我使用 vba。但是当我这样做时

pvtTable.CalculatedFields.Add Name:="Test1", Formula:="Column1 / AVERAGE(Column2)"

AVERAGE 是从第 2 列(对于选定的日期范围)中的值总和计算的,而不是单个值。 编辑:AVERAGE 似乎在计算字段的公式中被忽略,取而代之的是总和。

在计算字段的公式中使用AVERAGE 时,有什么方法可以使用单个值?我使用 Office 2010。

更多详情

我尝试过这样做:

With pvtTable
    With .PivotFields("Column2")
        .Orientation = xlDataField
        .Function = xlAverage
        .NumberFormat = "0.00"
        .Value = "Avg Column2"
    End With
End With
pvtTable.CalculatedFields.Add Name:="Test2", Formula:="Column1 / Avg Column2"

但Test2 未显示在数据透视表的字段列表中。当我想从 vba 显示它时,我收到错误 Unable to get the PivotFields property of the PivotTable class。

【问题讨论】:

    标签: excel office-2010 calculated-field vba


    【解决方案1】:

    你快到了。在您的第一次尝试中,您需要将公式:= 更改为实际公式。 : 后面的 = 不会启动您的公式(请参阅 name 参数)。这是一个令人困惑的语法。那么你需要在列名周围加上单引号。

    这应该可以解决问题:

    ActiveSheet.PivotTables("PivotTable1").CalculatedFields.Add _
        "Test1", _
        "='Column 1'/AVERAGE('Column 2' )", _
        True
    

    更新:这不起作用。您不能在需要范围引用的计算字段中使用公式。

    http://www.ozgrid.com/Excel/pivot-calculated-fields.htm

    【讨论】:

    • 感谢您的回答,但没有帮助。 ='Column 1'/AVERAGE('Column 2' ) 的计算结果与 ='Column 1'/'Column 2' 相同。原因在规则#2 中解释here。我相信我想要实现的目标是这项技术无法实现的。
    • 看来你是对的。您不能在数据透视表的计算字段选项中使用需要范围的 Excel 公式。 powerpivot 可能会起到作用,但这是一个单独的安装,而不是我熟悉的东西。
    猜你喜欢
    • 2018-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多