3

Excel に 2 つの列があり、日付が行としてあり、計算フィールドを含むピボット テーブルを作成したいとします。Column1 / AVERAGE(Column2)選択した日付に応じて、計算フィールドの式はです。

vbaを使用しています。しかし、私がするとき

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

AVERAGE単一の値ではなく、列 2 (選択した日付範囲) の値の合計からカウントされます。 EDIT :AVERAGE計算フィールドの式では無視されているようで、代わりに合計が取られます。

AVERAGE計算フィールドの数式で使用するときに単一の値を使用する方法はありますか? Office2010を使用しています。

詳細

私はこれをやろうとしました:

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

4

1 に答える 1

0

あなたはほとんどそこにいます。最初の試行では、式:= を実際の式に変更する必要があります。: に続く = は数式を開始しません (name 引数を参照)。ちょっとややこしい構文です。次に、列名を一重引用符で囲む必要があります。

これでうまくいくはずです:

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

更新: これは機能しません。範囲参照が必要な計算フィールドでは数式を使用できません。

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

于 2013-10-30T21:42:37.817 に答える