数据透视表的报告过滤器使用"大于"

Luk*_*asz 14 excel pivot-table

我有一个数据透视表,其中包含报表过滤器中的一个字段(概率).其值为步长5(0,5,10,15,...,100)的百分比.我想用它来过滤大于或等于某个值的概率,但过滤器只过滤精确的选择.

现在我使用允许多个值的解决方法,然后从我想要的阈值中选择所有值,一直到100这个解决方案,除了尴尬,不显示我的选择,这是必要的,因为这个表是打印出来.过滤器的显示值是"(多个值)",我想显示所选的所有值,甚至更好,例如"> = 20%".我真的不在乎它们是在现场本身还是在Pivot表外的另一个单元中显示.

我的问题:1)我可以使用过滤器来过滤> =我的选择吗?如果没有2)我可以显示多个选项,如"> = 20%"

小智 8

我知道这有点晚了,但如果这对任何人都有帮助,我想你可以在数据中添加一列来计算概率是否为">='PivotSheet'$D$2"(参考pivot table表格中的单元格).

然后,将该列添加到数据透视表中,并将新列用作true/false过滤器.

然后,您可以更改存储在引用单元格中的值以更新概率阈值.

如果我理解你的问题,这可能会得到你想要的.过滤器值将显示在带有枢轴的工作表上,并且可以更改以适应概率阈值的任何快速更改.T/F滤波器可以标记为"高于/低于概率阈值"或类似的东西.

我用它来做类似的事情.在数据透视表工作表上使用单元格引用非常方便,因此我可以更新该值并刷新数据透视表以快速修改结果.我这样做的人无法决定应该达到什么样的门槛.


Luk*_*asz 0

经过一番研究,我终于得到了一个 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
Run Code Online (Sandbox Code Playgroud)