第7章 在PPT中演示数据地图
在实际工作中,数据分析报告一般都以Word、PPT形式呈现,因此前面制作的数据地图都需要导入到Word、PPT中。本章介绍一些在PPT中导入和演示数据地图的技巧。
7.1 将数据地图导入PPT
要将Excel中制作的数据地图导入到Word、PPT等报告中去使用,根据情况可以采用以下3种方式。
拍照为整合图片
为方便导出,在前面所介绍的各种做法里,我们都建议对地图图形所在的单元格区域进行拍照[1],得到一幅整合的地图图片,然后将此图片复制到Word、PPT中去。
以3.1节分档填色热力地图文件为例,各区域独立的地图图形放置在单元格区域U11:AB32范围内,对此区域拍照后得到一个整合的图形,放置在L11:S32处。
一般情况下推荐使用此方法导出地图图形,其优点有:
●各区域独立的地图图形被组合为一个整体的图片对象,方便导出排版;
●若要复制到其他应用,操作起来非常方便顺手,用过就会深有体会;
●更重要的是,这个图片对象是矢量的,调整大小时不会变模糊。
复制原始地图图形
有时候,在PPT中演示时可能还需要用到各区域原始独立的地图图形,譬如7.2节将要讲到的对各区域设置突出显示或提示框的效果。这时可直接选中所有区域的原始地图图形,一起复制到PPT。
在这种复制方式下,若需调整地图的大小,需要先将各区域图形组合为一个对象,然后调整大小(注意按住Shift键以保持比例),最后再取消组合为独立的图形。也可以采用复制拍照图片→调整大小→再取消组合的方式。
链接方式
如果你的PPT报告中所用到的数据地图是需要按月周期性更新的,那么建议采用链接的方式。在Excel中复制地图图形所在的单元格区域,在PPT中执行选择性粘贴→粘贴链接→Excel工作表对象,则地图会以链接的形式出现在PPT中。以后每月更新Excel文件后,PPT中的数据地图可以通过单击鼠标右键→更新链接而自动更新。此方式适用于按月或按周开展的周期性数据分析工作。
7.2 鼠标指针显示地震波
在PPT中演示数据地图时,如何让观众注意到我们当前所讲解的区域呢?这里介绍一个让鼠标指针显示地震波的小技巧。
在Windows系统的控制面板→鼠标→指针选项设置中,勾选对话框底部的当按Ctrl键时显示指针的位置,如图7-1左侧所示。
图7-1 设置在鼠标指针处显示地震波
这样,当你放映PPT演示数据地图时,把鼠标指到相应的区域,按下Ctrl键,屏幕就会出现一个闪动收缩的地震波,按一次出现一次。由于鼠标所指的是一幅地图,所以这个地震波效果就显得非常生动、应景。
其实,这一演示技巧不仅适用于演示数据地图,在用投影仪演示任何应用时都可以使用,观众一定会好奇你使用了什么秘密武器。
7.3 鼠标移过时突显地图图形
在PPT中演示静态的热力地图时,我们希望能有一些交互显示,如当鼠标单击或者移过某个区域时予以突出显示,便于观众更清楚地看到你所讲解的区域。这可以在PPT中通过图形的动作设置来完成。
以3.1节分档填色热力地图为例,在刷新地图后,将原始的各省地图图形一起复制到PPT中。选中某省的图形,单击鼠标右键→动作设置[2],出现如图7-2左侧所示的对话框。在单击鼠标和鼠标移过两个选项卡下,都有个单击鼠标/鼠标移过时突出显示复选框,勾选之。
图7-2 设置鼠标单击或者移过时突出显示
对其他省的图形一一进行同样的设置,利用F4键(重复上一次操作)来完成这个任务是最简单的方法。当然,你也可以通过录制宏后编写一小段宏来完成这个任务,参见7.6节第6步的相关内容。
现在进入放映状态,用鼠标移过或单击某省的图形,即会看到突出显示的效果。特别是鼠标移过的突显效果,在PowerPoint 2003下的演示效果非常流畅、灵动。PowerPoint 2003下的突出显示效果是对图形使用深色填充,PowerPoint 2007下的突出显示效果是在图形外围显示一个虚线的矩形框,显然前者优于后者。
7.4 鼠标悬停时显示提示框
前面介绍的各种地图形式的在线案例中,都有一种动态效果我们还没有模仿到,那就是当鼠标悬停在某个区域上时,会出现相应的信息提示框,显示该区域的名称和指标值。有没有办法做到呢?
有,并且是一个非常巧妙、简单的方法。这一方法的创意是利用Office的超链接功能。
在Office中,一个对象可以被设置超链接和屏幕提示信息,如图7-3所示。设置之后,当鼠标悬停在该对象上时会显示所设置的屏幕提示信息,单击鼠标时则跳转到所设置的链接地址。如果我们为各区域图形设置超链接,且设置屏幕提示信息为相应的区域名称和指标值,那么就可以在鼠标悬停时将其显示出来!
图7-3 设置超链接和屏幕提示信息
对这一设置过程录制宏,可以获得关键代码。将修改后的代码加入到地图填色宏中,可以在对各省图形填色的同时设置提示信息。以3.1节分档填色地图做法为例,在其fill_color宏的循环中插入如下两句宏:
myscreentip = Range("DataMap!C" & i).Value & " : " & Application.WorksheetFunction.Text(Range("DataMap!D" & i), "0.0%")
ActiveSheet.Hyperlinks.Add Anchor:=ActiveSheet.Shapes(Range("DataMap!B" & i).Value), Address:="", SubAddress:="datamap!A1", ScreenTip:=myscreentip
这样,当宏运行完成后,在为每个区域的图形填充相应颜色的同时,也为其设置了超链接和屏幕提示信息,屏幕提示信息为相应的区域名称和指标值。现在,在Excel中用鼠标悬停在地图上时(不要单击),就会动态显示相应区域的提示信息,非常方便读者的浏览,如图7-4所示。
图7-4 鼠标悬停在地图上时,显示相应的提示框信息 范例文件名:7.4鼠标悬停时显示提示框。xls(或.xlsm)
我们的目标是在PPT演示时也能具有这样的动态交互效果。现在将Excel文件中原始的各区域地图图形一起复制到PPT中,进入放映状态,你会发现地图图形同样具有鼠标悬停显示效果!这说明屏幕提示信息也被跟随复制过来了。鼠标单击时的超链接地址倒是失效了[3],不过这正是我们所希望的,真是得来全不费功夫。
有人可能会问,这个技巧能否应用到6.1节的综合数据地图分析模型中,让作为地图选择器的热力地图既可以单击鼠标切换区域,又可以悬停鼠标显示提示框?这真是一个好想法。
但答案是令人遗憾的。经过测试发现,地图图形虽然可以同时设置超链接和宏动作,但超链接会优先从而“屏蔽”掉宏动作,单击鼠标时只会触发超链接而不会触发宏动作,所以第6章的做法中无法同时使用这两个技巧。
不过,在5.2节和5.3节的动态地图中可以运用这一技巧,以便在切换地图上的数据后,用鼠标悬停显示当前信息。另外,在PPT中演示一个静态的数据地图时,也可以同时运用鼠标移过突出显示和鼠标移过显示提示框两个动态效果。
7.5 演示动态的数据地图
5.2节和5.3节介绍的切换时间维度或指标数据的动态数据地图,都是在Excel中的动态交互效果。有没有办法在PPT放映时演示这种动态效果呢?
从理论上讲,可以将动态地图模型的Excel文件嵌入到PPT中,然后通过在PPT中控制和操作这个嵌入的Excel文件来刷新地图,不过这将会非常麻烦。
一般情况下,可以简单地采用超链接方式。即在PPT中放一张动态地图模型的截图,对其插入超链接至原Excel源文件。这样,在PPT演示的时候,不必退出PPT,点击链接即可打开链接的Excel源文件,演示其中的动态图表或动态数据地图。演示完毕后关闭Excel,可返回播放状态的PPT界面继续演示。在这种做法下,要求Excel源文件和PPT文件处于同一台计算机上,便携性受到限制。
另外一种方法,可以将动态地图的切换结果分别拍照或截屏保存为不同的图片,插入PPT,使用动画设置出依次出现的动态播放效果,最后将这些图片对齐叠放在一起,看起来只有一张图片。这样,在PPT演示时,可看到类似于在Excel中切换时间维度或指标数据时的动态效果。
还有一种办法是利用水晶易表(Xcelsius),不过这与本书内容已完全无关。可以使用水晶易表制作动态图表或地图选择的动态图表,导出为Flash文件插入到PPT中,实现交互演示效果。但是,水晶易表的地图部件不支持中国地图,需要自己制作,而水晶易表中自己动手制作一个数据地图要比Excel中麻烦得多。
7.6 基于地图选择的动态图表(PPT演示版)
在5.4节、5.5节介绍的基于地图选择的动态图表,包括鼠标点击版、鼠标移动版,都是在Excel中的动态演示。虽然7.5节介绍了在PPT中通过超链接打开Excel源文件进行动态演示的方法,但如果能直接在PPT中做出类似演示效果,一定会让人瞠目结舌。本节介绍在PPT中实现基于地图选择的动态图表的方法。
作图思路
PPT中的自选图形可以设置动作,例如当用户单击时运行一个宏。通过编写一小段宏,在用户点击某省图形时,将对应的区域名称填入嵌在PPT中的工作表,工作表中的动态图表模型就会自动切换数据,从而实现动态交互效果。完成的模型效果如图7-5所示。
图7-5 PPT中基于地图选择的动态图表模型 范例文件名:7.6基于地图选择的动态图表(PPT演示版).ppt(或.pptm)
作图步骤
1.制作Excel中的动态图表模型。
这个已经比较容易,可参见5.4节的相关内容。我们可以使用数据有效性和VLOOKUP函数构造一个简单的动态图表模型。如图7-6所示,单元格A2的数据有效性引用为A5:A36,B2:M2使用VLOOKUP函数,根据A2的值,从A5:N36区域查找并返回对应的数据。图表以A2:M2为数据源,若A2变化,则A2:M2也变化,图表就相应变化。
图7-6 为嵌入PPT准备的Excel动态图表模型
本例中考虑到会有多个动态图表,data1、data2等的单元格A2均引用dashboard单元格A1的值,而dashboard的单元格A1的值将由用户的选择来填充值。
建议将这些图表放在单独的dashboard工作表中,避免后续更新数据时影响PPT中的显示。本例中将图表锚定在dashboard工作表的B5:H24区域。为避免PPT中打开时出现宏提示,这个Excel文件中不要包含宏。
2.将Excel文件嵌入PPT。
在完成的Excel动态图表模型文件中,复制包含图表对象的单元格区域B5:H24,转到PowerPoint中,插入一个空白页,单击菜单编辑→选择性粘贴→工作表对象,就将该Excel文件“嵌入”到PPT中了,并显示为所复制单元格区域的内容。将其置于PPT页面右侧。
注意Excel文件嵌入后,PPT中的显示将与原文件再无关系,一切修改都要在嵌入文件中进行。因此,嵌入前应考虑充分,尽量把Excel文件做完善,避免后续修改麻烦。
3.修改嵌入对象的名称。
由于后面我们要引用并操作这个嵌入对象,因此需要先知道它的名称。按前述方法嵌入PPT的对象,根据软件版本或页面对象的不同,其名称可能为“Object 4”或“对象44”等不确定的名称。我们需要将其修改为确定的、有意义的名称,便于后续引用。可以通过图7-7所示的宏代码来修改。
图7-7 修改PPT中对象名称的宏
操作方法是:①先选中嵌入的图表对象;②按Alt+F11键进入VBA编辑窗口,插入一个模块,输入图7-7所示代码;③运行该代码,在弹出对话框中输入“MyExcelChart”,这样就指定了该嵌入对象的名称。
如果不使用宏,我发现还有一个简单有趣的方法可以修改该嵌入对象的名称:
在PPT中复制该嵌入对象,打开一个新的Excel文件,按Ctrl+V键粘贴,这时该嵌入对象被复制到新Excel文件中。选中该嵌入对象,在Excel左上角的名称框中将其名称修改为“MyExcelChart”,然后再将该嵌入对象复制粘贴回PPT中,则这个名称也被带回到PPT中了!
4.插入地图图形。
将准备好的地图图形复制到PPT中,置于页面左侧。复制前,请先确认已在Excel中对地图图形用数据表中的地名进行命名,因为在PPT中我们也要利用到这些图形的名称。复制粘贴后,Excel中的命名在PPT中仍然有效。
5.编写地图选择器的宏过程。
在放映PPT时,若用户点击某省的图形,我们要通过宏在后台悄悄打开嵌入的Excel文件,把该省名称填写到dashboard工作表中的A1单元格,而这将触发动态图表模型自动切换图表的数据。
通过菜单视图→工具栏→控件工具箱[4],在PPT中绘制一个按钮对象。这时再按Alt+F11键进入PowerPoint的VBA编辑窗口,左侧会出现名为Slide1(或Slide2等)的对象[5]。双击该对象,右侧出现代码窗口,我们将在这里输入每个省图形被单击后要调用的宏代码。
为每个省编写的宏过程其实非常简单,例如图7-8所示为“北京_Click”代码。
图7-8 记录用户选择省名的宏过程
为所有省的图形一一编写宏过程。这个过程仅需复制、粘贴、替换就可以了。
6.为地图图形指定宏调用。
现在要把上述宏代码指定给各省对应的图形。指定宏调用的同时,我们顺便设置鼠标单击和鼠标移过时的突出显示效果,以提供更好的操作体验。请参见7.2节的相关内容。
选中某省的图形,以湖北为例,单击鼠标右键→设置动作,在出现的对话框中进行以下设置:①在选项卡单击鼠标→单击鼠标时的动作,选择运行宏,指定宏名为slide1.湖北_Click;②勾选单击时突出显示复选框;③在鼠标移过选项卡中勾选鼠标移过时突出显示复选框。
按此方法逐一为其他省的图形做相应设置。
不过,我们可以通过对以上操作录制宏获得代码,修改、编写如图7-9所示的宏代码,一次性批量完成指定宏的任务,省去烦琐的设置。
图7-9 批量设置宏调用和突出显示的宏
7.测试模型。
现在,激动人心的时刻到了。进入PPT放映状态,在地图上移动鼠标,地图会突出显示当前鼠标所在省的图形;若单击某省图形,右侧的图表就会自动切换为对应省份的数据!最后检查并确认数据的正确性,大功告成[6]。
首次单击某省图形时,由于后台要打开Excel程序,所以响应速度会稍慢。之后再选择其他省图形则没有此问题了。
在放映一次后退出放映状态,再次放映时,可能会出现点击无反应的不稳定情况,这时可退出PPT然后重新进入。
在第6步中若将宏赋给鼠标移过时的动作,则可以实现鼠标移过即切换动态图表,类似于5.5节的演示效果,不过这里可是PPT版的。
懒人直接用
在随书范例包中找到并打开“7.6基于地图选择的动态图表(PPT演示版).ppt(或.pptm)”文件,启用宏。
●在嵌入对象中输入数据。
更新嵌入文件中的数据或图表时,不要直接双击打开该对象,这样编辑窗口会非常小,不便于操作。可选中该对象后,单击鼠标右键→工作表对象→打开,打开一个名为“工作表在xxx PPT”的正常Excel窗口进行编辑。在这里更新你的数据,编辑完保存并关闭该Excel窗口即可。关闭Excel前请记得回到dashboard工作表,否则会影响PPT中的显示内容。
●放映PPT,检查并确认动态交互效果及数据的正确性。
如果你尝试将范例文件中的这页PPT复制到你的PPT中去,可能会发现无法成功演示。作为变通办法,可以反过来操作,即在对此范例文件应用你的PPT模板设置之后,将你的PPT页面都复制到这个文件中来。
轻松一刻
在走向人生的目的地之前,先为自己设计一张人生地图十分重要。
在地图上要把起点标出来,把目的地标出来,把到达目的地的路径标出来,还必须有足够的心理准备应付意外情况发生,知道一旦原定的路径走不通如何确定新的路径。
人生不仅仅是为了走向一个结果,同样重要的是走向结果的路径。有人生的地图在手中,走在风中雨中你都不会迷失方向,你的一辈子就会比你想象的走得更远,到达的目的地更多,因此也就会有更多的精彩。
——俞敏洪《人生的地图》
注释
[1] 操作方法请参见附录A.4。
[2] Excel 2007下需从菜单插入→动作进入。
[3] 在Office 2007/2010中情况会有所差异,具体请参见相应范例文件。
[4] Excel 2007以上版本,若看不见开发工具选项卡,请在选项→自定义功能区中调出。
[5] Slide对象似乎只有在插入控件对象后才会出现,所以绘制按钮控件的目的只是为了让Slide对象出现,并通过Slide对象来引用其中的对象。之后就可以删除该按钮控件了。
[6] 本做法在Office 2003中测试通过,在Offcie 2007/2010中可能存在不稳定情况。