web-dev-qa-db-ja.com

「より大きい」を使用したピボットテーブルのレポートフィルター

レポートフィルターにフィールド(確率)の1つがあるピボットテーブルがあります。その値は、5のステップでのパーセンテージです(0,5,10,15、...、100)。特定の値以上の確率をフィルタリングするために使用したいのですが、フィルタは正確な選択肢のみをフィルタリングします。

今のところ、複数の値を許可してから、必要なしきい値からすべての値を100まで選択する回避策を使用しますフィルターの表示値は「(Multiple Values)」であり、選択したすべての値を表示したいのですが、「> = 20%」のように表示することもできます。それらがフィールド自体に表示されるか、ピボットテーブル外の別のセルに表示されるかはあまり気にしません。

私の質問:1)セレクションの> =でフィルターするフィルターを取得できますか?そうでない場合2)「> = 20%」のような複数の選択を表示できますか

14
Lukasz

私はこれが少し遅いことを知っていますが、これが誰かに役立つなら、確率が">='PivotSheet'$D$2"pivot tableシートのセルを参照)かどうかを計算する列をデータに追加できると思います。

次に、その列をピボットテーブルに追加し、新しい列をtrue/falseフィルターとして使用します。

その後、参照セルに保存されている値を変更して、確率のしきい値を更新できます。

私があなたの質問を正しく理解していれば、これはあなたが望むものを手に入れるかもしれません。フィルター値はピボットとともにシートに表示され、確率のしきい値をすばやく変更するのに合わせて変更できます。 T/Fフィルターには、「Above/At Probability Threshold」などのラベルを付けることができます。

同様のことをするためにこれを使用しました。ピボットテーブルシートにセル参照があると便利だったので、値を更新し、ピボットを更新して結果をすばやく変更できました。私がそれをした人々は、そのしきい値がどうあるべきかを決心できませんでした。

8
OperativePanda

Excelピボットテーブルでは、フィルターが明示的に選択された値のみを許可することは正しいです。ただし、フィルターテーブルがピボットテーブルの行または列に配置されている場合、「より大きい」を含むラベルフィルター条件のより広いセットを取得します。ケースでこれを行った場合、追加の利点は、条件に一致するさまざまな確率レベルが表の本文に表示されることです。

4
MattClarke

いくつかの調査の後、別のセルにフィルター値を表示する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
0
Lukasz

データソースに、すべての行でsumifを実行する列を追加する場合があります。データがどのように見えるかはわかりませんが、=(sumif([ピボット行ヘッドを保持する列]、[行の現在の行ヘッド値]、確率列)>。2)のようなものです。これにより、ピボットテーブルに20%以上が表示されたときにTrueが得られます。
次に、この列のピボットテーブルにTRUE値のフィルターを追加します

0
Lachlan Duncan