切片器控制数据透视表值字段展示

文摘   教育   2024-08-22 19:50   广东  
使用切片器控制某个字段的筛选我们都知道怎么用,那你知道使用切片器怎么来控制值字段的筛选吗?
下面我们来看这个例子,我们要通过控制切片器,来控制值字段的展示。

如下图所示,当我们点击切片器某项时,数据透视表的值字段展示会变成我们选中的字段了。在正常创建切片器的过程中,我们并不能使用切片器来控制值字段的展示,那么下面这个用切片器控制字段展示是怎么做到的呢。

在这里我们需要借助VBA以及工作表事件来完成这个操作。

第一步:创建辅助用透视表

将字段复制到另一个区域进行转置,然后创建透视表,并给透视表创建切片器

第二步:写代码
在辅助透视表所在工作表中写入以下代码

Private Sub Worksheet_PivotTableChangeSync(ByVal Target As PivotTable)Dim slc As SlicerCacheSet slc = ActiveWorkbook.SlicerCaches("切片器_类别")For Each slcItem In slc.SlicerItems    If slcItem.Selected = True Then        Dim pvt As PivotTable, pvtField As PivotField        Set pvt = Sheet1.PivotTables("数据透视表1")        For Each pvtField In pvt.DataFields            pvtField.Orientation = xlHidden        Next        pvt.AddDataField pvt.PivotFields(slcItem.Caption), slcItem.Caption & " ", xlSum    End IfNextEnd Sub
第1行:使用工作表的Worksheet_PivotTableChangeSync捕获透视表是否发生改变触发事件
第3行:将切片器赋值给变量
第4行:循环切片器的项
第5-12行:如果切片器的项被选中,则将原目标透视表的值字段全部取消展示,然后在值字段中添加被选中的项作为值展示
将切片器移动到目标透视表的旁边,我们就可以使用该切片器控制值字段的展示了。该代码只展示一个字段,如果需要依次展示多个被选中的字段,则需将被选中的字段装入数组,然后使用循环依次展示。

好了,本期教程就到这里啦,走过路过的点个关注分享一下吧,谢谢啦


Excel应用教程
主要提供Excel vba,函数,图表,数据透视表,pq,Js等教程
 最新文章