【问题标题】:How to link a Table and a Pivot Table using Slicers in Excel?如何在 Excel 中使用切片器链接表格和数据透视表?
【发布时间】:2022-03-14 15:51:10
【问题描述】:

嗯。我在 Excel 的工作表上有一个名为“ALL_INFO”的表,我在另一个工作表中创建了一个数据透视表,它的名称是“PIVOT_INFO”。而且我想知道如何链接表格和使用切片器过滤信息的数据透视表,并将其反映在两个表格中。

有人知道我该怎么做吗?

提前谢谢你。

【问题讨论】:

标签: excel pivot-table slicers excel-tables


【解决方案1】:

为数据透视表和表格创建一个切片器。确保 PT Slicer 可见,并且 Table Slicer 隐藏在用户看不到的地方。然后把这段代码放到你的PT所在工作表对应的Sheet Module中:

Option Explicit

Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)
Dim sLastUndoStackItem As String
Dim sc_Pivot As SlicerCache
Dim sc_Table As SlicerCache
Dim si_Pivot As SlicerItem
Dim si_Table As SlicerItem

With Application
    .ScreenUpdating = False
    .Calculation = xlCalculationManual
End With

If Target.Name = "PivotTable1" Then '<= Change name as appropriate
    On Error Resume Next 'in case the undo stack has been wiped or doesn't exist
    sLastUndoStackItem = Application.CommandBars(14).FindControl(ID:=128).List(1) 'Standard Commandbar, undo stack
    'The above line doesn't seem to work in my version of O365 so we'll use the English language backup
    If sLastUndoStackItem = "" Then sLastUndoStackItem = Application.CommandBars("Standard").Controls("&Undo").List(1)
    On Error GoTo 0

    If sLastUndoStackItem = "Filter" Or sLastUndoStackItem = "Slicer Operation" Then

        Set sc_Pivot = ActiveWorkbook.SlicerCaches("Slicer_Data") '<= Change name as appropriate
        Set sc_Table = ActiveWorkbook.SlicerCaches("Slicer_Data1") '<= Change name as appropriate
        sc_Table.ClearAllFilters

        On Error Resume Next 'In case items differ between Table and PT
        For Each si_Pivot In sc_Pivot.SlicerItems
            With si_Pivot
                sc_Table.SlicerItems(.Name).Selected = .Selected
            End With
        Next si_Pivot
    End If
End If

With Application
    .ScreenUpdating = True
    .Calculation = xlCalculationAutomatic
End With

End Sub

这是我使用“Master”切片器之前的样子:

...这是我使用“Master”切片器后的样子:

请注意,过滤表格会隐藏整个工作表中的行。因此,您不想将任何想要始终保持可见的东西放在表格旁边。

【讨论】:

  • 嗨,杰夫,你有这方面的视频教程吗?因为我有同样的问题。我正在尝试通过单个切片器控制数据透视表和 excel 表,但无法这样做..我尝试将您的代码粘贴到宏中的数据透视表上..它仍然无法正常工作,如上所示
  • 嗨,Jitesh。您的数据透视表的名称是什么?
  • 嗨,杰夫,基本上我已经将所有数据源转换为一个 excel 表(Ctr + T),所以如果我添加任何新值,它将自动添加到我的数据透视表中。现在问题是我有从 excel 表中创建了两个切片器,另一个来自此数据透视表。供您参考,我附上了示例文件 ( Example.xlsx ) github.com/supersaiyan12/Query 您会找到“DataSource_Tab”和“Pivot_Tab”。如果我在一个切片器中更改如果不会对另一个切片器产生任何影响。
猜你喜欢
  • 1970-01-01
  • 2021-09-02
  • 2020-06-21
  • 1970-01-01
  • 1970-01-01
  • 2018-02-21
  • 2015-12-05
  • 2023-01-13
  • 1970-01-01
相关资源
最近更新 更多