excel图表秘籍! Excel VBA操作切片器切换显示不同图表的技巧


    用切片器可以筛选超级表或数据透视表,很多同学已经不陌生了。但是用切片器还可以筛选图表,这个玩过吗?
    案例:
    将下图 1 的数据表分别制作成柱形图和折线图,通过切片器,可以动态切换成所需展示的图表样式。
    效果如下图 2 所示。
    
    
    解决方案:
    1. 选中数据表的任意单元格 --> 选择菜单栏的“插入”-->“二维柱形图”-->“簇状柱形图”,生成柱形图
    
    2. 用同样的方式将数据表制作成折线图。
    
    接下来制作切片器。
    3. 在任意区域创建如下所示的图表类型列表。
    4. 选中上述列表的任意单元格 --> 选择菜单栏的“插入”-->“数据透视表”
    5. 在弹出的对话框中选择“现有工作表”--> 选择需要放置数据透视表的位置 --> 点击“确定”
    
    6. 将字段拖入“行”值区域。
    7. 选中数据透视表的任意区域 --> 选择菜单栏的“插入”-->“切片器”
    8. 在弹出的对话框中勾选数据透视表的名称 --> 点击“确定”
    然后需要创建三个名称区域,分别是图表类型和两个图表的名称。
    9. 选中数据透视表的第一个行值单元格 --> 按 Ctrl+F3
    10. 在弹出的对话框中点击“新建”按钮 --> 按以下方式设置 --> 点击“确定”:
    名称:输入“图表类型”
    引用位置:=indirect(Sheet1!$L$2)
    公式释义:
    $L$2 是数据透视表的第一个行值单元格,通过切片器筛选出来的名称始终显示在这个单元格中
    用 indirect 公式动态引用该单元格的内容
    单元格必须绝对引用
    
    
    现在给两个图表区域创建名称。
    11. 按住 Ctrl 键,用鼠标依次选中两个图表
    12. 保持同时选中两个图表 --> 适当调整图表的大小和位置,使得图表四边正好遮盖住 Excel 的网格线
    
    13. 选中右边的图表,拖动到合适的位置,图表边线也正好跟网格线重合
    14. 选中左边图表背后被遮住的单元格区域 --> 按 Ctrl+F3
    
    15. 在弹出的对话框中点击“新建”按钮 --> 按以下方式设置 --> 点击“确定”:
    名称:输入“柱形图”
    * 请注意:名称必须与数据透视表中的字段名完全一致。
    
    16. 再次点击“新建”按钮 --> 按以下方式设置 --> 点击“确定”:
    名称:输入“折线图”
    引用位置:选择折线图正好遮住的单元格区域
    
    17. 关闭名称管理器。
    接下来的步骤很关键,用照相机创建图片。
    18. 选中任意一个图表遮盖住的单元格区域 --> 选择菜单栏的“照相机”--> 点击所需放置图片的位置
    
    
    * 如果你的菜单栏上没有“照相机”图标,可以通过“文件”-->“选项”-->“快速访问工具栏”-->“不在功能区的命令”找到照相机,并将它添加到快速访问工具栏中。
    
    19. 选中照相机图片 --> 在公式栏中输入以下公式:
    =图表类型
    为什么“=”后面是中文呢?还记得大明湖畔的夏雨荷刚才为数据透视表的第一个行值单元格创建的名称吗?就是这个名!也就是说,照相机跟数据透视表的第一个值字段关联,而第一个值字段又受切片器的控制,可以在两个图表名称之间切换,间接就是让照相机动态关联切片器所选择的图表,从而实现本案例的需求。
    
    20. 最后的最后,插入一些空白列,使得不需要的内容不要显示在视野内。
    这就是最终的效果。