我们用Excel做图表时,都会习惯做成动态图表,这样既避免了图表堆砌,也提升了交互体验感!
在Excel中,动态图表的常见做法有两种:①切片器+透视图②控件+普通图表,方法①简单快捷,方法②个性灵活。我们推荐在制作分析模板时,优先使用方法②,以便实现更灵活、业务化的展示需求,例如下图的Excel控件动态图表:
20个店铺,你并不需要做20张图表,一个组合框控件+一张图就解决了问题!这是非常实用酷炫的处理方法!
那么如此实用、酷炫的动态图表,如果能实现在PPT中去演示,在开会的时候show一下,那可就完美了~
这当然也可以实现!下图就是演示效果:
当你在会议中汇报工作时,演示出以上的效果,20个店铺只在一页PPT中即可完美呈现!想想老板和同事惊呆了的眼神,肯定会让你收获满满的成就感!
如果是用切片器做的动态透视图,是没办法在PPT中演示的;用控件做动态图表,就可以实现在PPT中去演示!
以下讲解实现的步骤:
1、先在Excel里做好动态图表
这个是常规做法,这里就不展开讲解。用户的选择结果记录在dashboard工作表的Q2单元格,这是动态图表的驱动引擎。
2、将包含动态图表的Excel文件嵌入到PPT
复制Excel文件里放置图表的单元格区域(注意是图表后面的单元格区域,不是图表本身),在PPT里新开一页,选择性粘贴>
3、在PPT里插入组合框
在PPT里,开发工具-控件,插入一个组合框。如果你的PPT没有开发工具,请先在文件-选项-自定义功能区里调出来。
但这个下拉框,PPT并没有提供地方让你指定下拉选择项和保存选择结果的位置,怎么办?这里是难点了,接下来我们需要使用VBA代码从Excel里读出选择项列表,赋给下拉框。
4、在PPT中写入代码
这个需要使用VBA代码来实现后续的事情了。在PPT里按下Alt+F11键来到VBE窗口,这个和Excel里是一样的。左侧选中slide1或slide2这样的对象(前面有个PPT的小图标),在右侧代码区输入如下的代码:(代码在文末提供,大家可以直接复制即可)
绿色箭头所指的位置,需要根据步骤1中Excel的动态图表控件配置内容,进行数据源、链接单元格的配置。
这段代码所做的事情,就是在每次PPT放映、下拉框被选中的时候,就去打开那个嵌入在PPT里的Excel文件,读取其中工作表的B2:B21范围,把这些选择项赋给下拉框。当你进行下拉选择时,代码会执行把你选择的结果写入工作表的Q2单元格,以驱动图表变化。
5、放映PPT测试动态图表
现在,激动人心的时刻就要来到了!放映PPT,鼠标点击下拉框,可能会看到赋值的一下闪动,这时下拉框可能只有1行,再点一下下拉框,就可以完全展开了(这应该是个小bug)。选择某个选择项,右侧的图表就可以实现动态切换了!没错,就是如下图的效果:
6、保存PPT文件
保存文件时会提示含有宏,选择保存为后缀名为.pptm带宏格式的文件。下次打开时会有宏提示,选择启用宏即可。
7、以后的数据更新
Excel嵌入PPT里后,那个单独的Excel文件就不需要了,所以你应该确认在Excel模型做完善了之后再嵌入。以后需要更新数据时,应该更新PPT里的嵌入对象。不要直接双击打开,这样窗口太小,不方便操作。要在嵌入对象上右键-工作表对象-打开,这样会打开一个大的Excel窗口供你编辑,这样会更方便。
总结
有些同学可能觉得太复杂,有7个步骤,但其实只要你在Excel里做好动态图表后,后面的动作熟练操作后1分钟不到即可完成,因为代码我已帮大家写好了,直接复制粘贴修改即可使用~
PPT中可以完美支持演示所有的Excel图表,甚至在PPT中直接也可以做动态图表,当然还是要借助VBA代码来实现,不过也并不难,如果大家有兴趣学习更多的进阶Excel动态图表、PPT动态图表知识,欢迎加入《数说》会员,你可以学习到以下的全部内容!
课程内容丰富,贴近实际工作场景,性价比超高,适合所有职场人士学习以提升数据分析能力(戳下方图片进入课程介绍,点文末的“阅读原文”可领优惠券):
最后附上PPT动态图表的代码,可直接复制,祝大家玩得愉快~
DimShAs>
Private>
SetSh=Me.Shapes(1).OLEFormat.>
Object.ActiveSheet
ListRng=>
>
Sh.Range("B2:B21")'←←双引号内,填写【控件的数据源区域】
WithComboBox1
Fori=1ToUBound(ListRng)
.AddItemListRng(i,1)
Nexti:EndWith
Me.ComboBox1.Text="请选择"
ComboBox1.ListRows=>
UBound(ListRng):EndSub
PrivateSubComboBox1_Click()
'''''''''''''''''''下方双引号内,填写控件【链接的单元格】'''''''''''
''''''''''''''''↓↓↓↓↓↓''''''''''''''''''''
Sh.Range("Q2") >
>
=ComboBox1.ListIndex>
+1:EndSub
PrivateSubComboBox1_LostFocus()
Set Sh = Nothing: ComboBox1.Clear: End Sub
文章为用户上传,仅供非商业浏览。发布者:Lomu,转转请注明出处: https://www.daogebangong.com/fr/articles/detail/PPT%20report%20visualization%20also%20come%20to%20play%20with%20dynamic%20chartsTutorial%20attached.html
评论列表(196条)
测试