ピボットテーブル「は、その1つの明白な機能を」持っていないことで有名です。
この場合、「計算の集計」(たとえば、使用された%の合計)は実際には「集計の計算」(たとえば、合計の使用率)である必要があります。残念ながら、ピボットテーブルからこれを強制する方法はないようです。
フォールバックポジションとして、VBAを使用できます。 VBEditorで
- 、ダブル、最初のドロップダウンでピボットテーブル
- を含むワークシートをクリックしてワークシートを選択します。 2番目のドロップダウンで
- 、PivotTableUpdate
を選択PivotTableUpdateイベントの次のコードを挿入。それは変化の多くの種類のためにきれいに動作するはずです - 私は夢見ていない場合があると確信しています...
Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)
Dim rCell As Range, rCol As Range, rRow As Range
Dim lNewCol As Long, lBudgetCol As Long, lSpendCol As Long, lRow As Long
Dim sFormula As String
' Initial
Application.ScreenUpdating = False
' Clean up remnants of old calculation
For Each rRow In ActiveSheet.UsedRange.Rows
For Each rCell In rRow.Cells
If InStr(rCell.Formula, "=") Then
rCell.Delete shift:=xlShiftToLeft
GoTo NextCell
End If
If rCell.Value = "%Used" Then
rCell.Columns(1).EntireColumn.Delete shift:=xlShiftToLeft
GoTo NextCell
End If
If rCell.Value = "Budget" Then lBudgetCol = rCell.Column
If rCell.Value = "Spending" Then lSpendCol = rCell.Column
NextCell:
Next rCell
Next rRow
lNewCol = ActiveSheet.UsedRange.End(xlDown).End(xlToRight).Column + 1
' Implement new calculation and format
For Each rRow In ActiveSheet.UsedRange.Rows
lRow = rRow.Rows(1).EntireRow.Row
ActiveSheet.Cells(lRow, lNewCol - 1).Copy
ActiveSheet.Cells(lRow, lNewCol).PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
If lRow = 4 Then ActiveSheet.Cells(lRow, lNewCol).Value = "%Used"
If lRow > 4 And IsNumeric(ActiveSheet.Cells(lRow, lNewCol - 1).Value) Then
sFormula = "=R" & lRow & "C" & lSpendCol & "/R" & lRow & "C" & lBudgetCol
ActiveSheet.Cells(lRow, lNewCol).FormulaR1C1 = sFormula
ActiveSheet.Cells(lRow, lNewCol).Style = "Percent"
End If
Next rRow
' clean up
ActiveSheet.UsedRange.End(xlToLeft).Select
Application.ScreenUpdating = True
End Sub
とは対照的に、使用される%を計算するために使用される式は=C5/B5
(例えば)であります単純化のために=GETPIVOTDATA(...)/GETPIVOTDATA(...)
です。
次のスクリーンショットは
...フィルタやレイアウトに変更されているような結果を示しますが、値フィールドの設定を持っているどのような設定を行う
>値をそのまま表示しますか? – Matt
私は合計オプションを持っていますが、リストの別の設定を選択すると、これはすべてのピボットテーブルに適用されます。 –
問題が再現できないようです。サンプルデータセットはありますか? – Matt