尽管对该主题进行了广泛讨论,但我仍无法找到适当的解决方案。
作为数据分析师,我想基于多个单元格区域中的值在多个数据透视表上应用过滤器。
我一直在寻找答案,并尝试应用以下解决方案:
https://www.mrexcel.com/forum/excel-questions/950078-filtering-pivot-table-based-cell-value.html
还有:
https://www.youtube.com/watch?v=xCJgCRuVU6c&t=201s
具体来说,此代码:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
'This line stops the worksheet updating on every change, it only updates when cell
'A1 to A9 is touched
If Intersect(Target, Worksheets(1).Range("A1:A9")) Is Nothing Then Exit Sub
'Set the Variables to be used
Dim pt As PivotTable
Dim Field As PivotField
Dim NewCat As String
'Here you amend to suit your data
Set pt = Worksheets(1).PivotTables("PivotTable1")
Set Field = pt.PivotFields("Sales Region")
NewCat = Worksheets(1).Range("A1:A9").Value
'This updates and refreshes the PIVOT table
With pt
Field.ClearAllFilters
Field.CurrentPage = NewCat
pt.RefreshTable
End With
End Sub
但是,他们没有应用100%,因为首先它完全不更新任何内容(没有响应),其次,即使可以使用,它也仅将过滤器应用于第一列。
以上当然不是完全正确的,因为过滤选项会删除表中的许多值。
数据透视表的ID为“ PivotTable1”和“ PivotTable2”。 工作表称为“ Sheet1”。
我希望能够更改这些值以及过滤器选项(例如,包含日期值过滤器。
请让我知道是否有任何不清楚的地方。
此外,如果还有其他任何不包含VBA的选项,这些选项也将很受欢迎。