レポートフィルターにフィールド(確率)の1つがあるピボットテーブルがあります。その値は、5のステップでのパーセンテージです(0,5,10,15、...、100)。特定の値以上の確率をフィルタリングするために使用したいのですが、フィルタは正確な選択肢のみをフィルタリングします。
今のところ、複数の値を許可してから、必要なしきい値からすべての値を100まで選択する回避策を使用しますフィルターの表示値は「(Multiple Values)」であり、選択したすべての値を表示したいのですが、「> = 20%」のように表示することもできます。それらがフィールド自体に表示されるか、ピボットテーブル外の別のセルに表示されるかはあまり気にしません。
私の質問:1)セレクションの> =でフィルターするフィルターを取得できますか?そうでない場合2)「> = 20%」のような複数の選択を表示できますか
私はこれが少し遅いことを知っていますが、これが誰かに役立つなら、確率が">='PivotSheet'$D$2"
(pivot table
シートのセルを参照)かどうかを計算する列をデータに追加できると思います。
次に、その列をピボットテーブルに追加し、新しい列をtrue/false
フィルターとして使用します。
その後、参照セルに保存されている値を変更して、確率のしきい値を更新できます。
私があなたの質問を正しく理解していれば、これはあなたが望むものを手に入れるかもしれません。フィルター値はピボットとともにシートに表示され、確率のしきい値をすばやく変更するのに合わせて変更できます。 T/Fフィルターには、「Above/At Probability Threshold」などのラベルを付けることができます。
同様のことをするためにこれを使用しました。ピボットテーブルシートにセル参照があると便利だったので、値を更新し、ピボットを更新して結果をすばやく変更できました。私がそれをした人々は、そのしきい値がどうあるべきかを決心できませんでした。
Excelピボットテーブルでは、フィルターが明示的に選択された値のみを許可することは正しいです。ただし、フィルターテーブルがピボットテーブルの行または列に配置されている場合、「より大きい」を含むラベルフィルター条件のより広いセットを取得します。ケースでこれを行った場合、追加の利点は、条件に一致するさまざまな確率レベルが表の本文に表示されることです。
いくつかの調査の後、別のセルにフィルター値を表示するVBAコードを取得しました。
Dim bRepresentAsRange As Boolean, bRangeBroken As Boolean
Dim sSelection As String
Dim tbl As Variant
bRepresentAsRange = False
bRangeBroker = False
With Worksheets("Forecast").PivotTables("ForecastbyDivision")
ReDim tbl(.PageFields("Probability").PivotItems.Count)
For Each fld In .PivotFields("Probability").PivotItems
If fld.Visible Then
tbl(n) = fld.Name
sSelection = sSelection & fld.Name & ","
n = n + 1
bRepresentAsRange = True
Else
If bRepresentAsRange Then
bRepresentAsRange = False
bRangeBroken = True
End If
End If
Next fld
If Not bRangeBroken Then
Worksheets("Forecast").Range("ProbSelection") = " >= " & tbl(0)
Else
Worksheets("Forecast").Range("ProbSelection") = Left(sSelection, Len(sSelection) - 1)
End If
End With
データソースに、すべての行でsumifを実行する列を追加する場合があります。データがどのように見えるかはわかりませんが、=(sumif([ピボット行ヘッドを保持する列]、[行の現在の行ヘッド値]、確率列)>。2)のようなものです。これにより、ピボットテーブルに20%以上が表示されたときにTrueが得られます。
次に、この列のピボットテーブルにTRUE値のフィルターを追加します