请问excel能利用宏+控件 来控制透视表行/列标签内字段的筛选么?

我的目的是要用excel实现类似tableau效果,即通过对raw data直接分析图,而excel可以利用透视表的来达到同样的效果。比如:我在一张柱形图对应的控件选择“上海”,透视表也会同步将透视的数据筛选为“上海”,然后我利用vlookup等函数实现图自动匹配“上海”的数据。这比水晶易表更好更重要,这里基本可以达到较高的数据同步效果。

可以考虑用切片器
选中数据透视表
在数据透视表选项页点插入切片器
然后选择你要筛选的字段,
然后只要点击其中某项,透视表和透视图就会立即变化
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-05-17
这个需要vba么?透视图不是自带么?Month作为行,Area作为列,Sales作为统计项,生成的透视图,系列就是Area,直接就可以筛选啊~~~追问

这是一个好主意。如果我想在一张sheet中放置8-10张透视图并且在筛选时透视图和筛选对话框不会随着透视表字符长度变化而改变长和宽,那就最完美了,可惜我还没有想到比较好的解决方法。所以我会把透视表放在sheet2,而利用vlookup和控件和VB控制筛选项对透视表进行分析,而应对的图在sheet1中演示,这是一个拙劣的dashboard构思。

第2个回答  2013-05-15
不难实现的!没有数据,展示不了!追问

如图

追答

先在同一个SHEET画数据透视图,名字假如为"数据透视表1",画一个在ComboBox1的控件,该SHEET的VBA编辑框写以下代码:

Private Sub ComboBox1_Change()
Dim i As Integer
Dim a As Integer
Dim b As String
a = ActiveSheet.PivotTables("数据透视表1").PivotFields.Count
b = ActiveSheet.ComboBox1.Value
For i = 1 To a - 1
With ActiveSheet.PivotTables("数据透视表1").PivotFields("area")
If .PivotItems(i).Name = b Then
.PivotItems(i).Visible = True
End If
End With
Next i
For i = 1 To a - 1
With ActiveSheet.PivotTables("数据透视表1").PivotFields("area")
If .PivotItems(i).Name b Then
.PivotItems(i).Visible = False
End If
End With
Next i
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
Dim a As Integer
Dim i As Integer
Dim ok As Integer
i = 2
Do
ok = 0
For a = 0 To ComboBox1.ListCount - 1
If Cells(i, 2) = ComboBox1.List(a) Then
ok = 1
End If
Next a
If ok = 0 Then ComboBox1.AddItem Cells(i, 2)

i = i + 1
Loop Until Cells(i, 2) = ""
End Sub

相似回答