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滤波器可以标记为"高于/低于概率阈值"或类似的东西.
我用它来做类似的事情.在数据透视表工作表上使用单元格引用非常方便,因此我可以更新该值并刷新数据透视表以快速修改结果.我这样做的人无法决定应该达到什么样的门槛.
经过一番研究,我终于得到了一个 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)