财务经理人网|财智东方.财务经理人网-致力于财务管理实践、打造卓越财务经理人!

QQ登录

只需一步,快速开始

返回列表 发新帖

[转帖]基于地图选择的Excel动态图表

[复制链接]

5

主题

6

帖子

12

积分

会计员

Rank: 1

积分
12
发表于 2010-1-19 11:10:00 |显示全部楼层 | 阅读模式

马上注册,结交更多财务经理人,享用更多功能,成就财务总监之路……

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

基于地图选择的Excel动态图表

基于地图选择的Excel动态图表

文 / 这是应某IT杂志约稿写的一个文章。后来因联系不上编辑,就没有发出去,而是加入到了书里,成为EP数据地图的又一种形式。并且,EP由此衍生出一套Excel数据地图工具,将于近期发布,敬请期待。

---------------

在《华尔街日报》这样的财经网站,我们经常会看到一种通过地图选择的交互式图表。当读者用鼠标在地图上选择某个地区,右侧的图表就会自动切换为该地区的数据。这种做法既可分析大量数据,又提供了地理位置信息,且交互性强,非常具有吸引力。我们可以利用热力地图中的图形和动态图表技巧,在Excel中实现这种效果。

作图思路:地图由一个个自选图形绘制而成,读者点击某个地区的图形,会触发一个宏过程,这个宏会记录下用户选择的地区名,并修改图形的填充效果。动态图表模型则会根据宏所记录的地区名变换图表的数据,产生动态交互的效果。完成的模型如图1所示。



图1 基于地图选择的动态图表模型。


1.准备地图图形

还是利用热力地图做法中的地图图形,并且采用相同的命名方法。将地图图形放置在名为dashboard的工作表中。

2.编写公共宏过程

单击菜单“工具→宏→Visual Basic编辑器”(或Alt+F11键),进入如图2界面。




2 用户选择后调用的公共宏过程。


在左侧窗口中选择ThisWorkbook,在右侧窗口中输入如下代码:

--------------------------------------------------------------------------

Sub user_click(region_name)

ActiveSheet.Shapes(Range("A1").Value).Fill.ForeColor.SchemeColor = 48

'1、取A1单元格值,将上次选择的地图版块填充黄色,即还原填充色

Range("A1").Value = region_name

'2、将当前选择的地图版块名称填写到A1

ActiveSheet.Shapes(region_name).Fill.ForeColor.SchemeColor = 52

'3、将当前选择的地图版块填充红色

End Sub

--------------------------------------------------------------------------



3.为每个地区图形指定宏调用

以湖北省为例,选中湖北的图形,鼠标右键→指定宏,出现如图3的对话框。




图3 为自选图形指定宏引用。


在宏名输入框中输入如下代码:

'thisworkbook.user_click("hubei")'


按同样方法,为其他省的图形一一添加宏代码。熟悉VBA的读者可使用如下宏代码批量添加:

-------------------------------------------------------------------------

Sub auto_add_macro()

'新建一个模型时手动运行,一次性添加宏

For i = 1 To ActiveSheet.Shapes.Count

'5表示对象类型是自选图形

If ActiveSheet.Shapes(i).Type = 5 Then

ActiveSheet.Shapes(i).OnAction = _

"'thisworkbook.user_click(""" & ActiveSheet.Shapes(i).Name & """)'"

End If

Next

End Sub

-------------------------------------------------------------------------


4.测试选择器

现在可以测试选择器了。测试之前,先手动为单元格A1初始化一个值,如“hubei”。然后,用鼠标逐一点击各省的图形,你会发现选择的结果会以拼音名反映在单元格A1中,图形的颜色也会跟随变化。至此,一个地图形式的选择器已经完成。


5.准备动态图表数据源

假设各省的数据存放在工作表data1中,其中A列为省名的拼音名,B列为省名,C~N列为各省1~12月的指标数据,如图5 所示。



图5 动态图表的数据组织。


单元格A2引用工作表dashboard中A1的值,即当前选中的省名。单元格B2:N2均为公式引用,使用Vlookup函数从数据表格中查找返回当前选中省的对应数据。以单元格C2为例,其公式为: =VLOOKUP($A$2,$A$5N$36,COLUMN(C5),0)。


6.制作图表

在工作表data1中以B2:N2为数据源制作图表,格式化至你喜欢的样式,然后将其复制粘贴到工作表dashboard中,放置在地图图形的右侧。

现在,用鼠标在地图上选择不同的省份,你会发现图表将自动跟随变化。至此,一个动态图表已经完成。


7.制作仪表盘

你可以继续使用第5~6步的方法,在其他工作表中准备数据,制作更多的图表,并都放置到工作表dashboard中,与地图一起排列好,就完成了一个动态分析仪表盘,例如图6 就是一个湖北地图的动态仪表盘例子。仪表盘是支持领导决策分析的高级数据呈现形式,下次把这个东西演示给你的老板看,一定会让他大吃一惊的。




图 6 一个湖北地图选择的动态仪表盘例子


这个方法用到了Excel的名称、宏过程、动态图表等技术,难度并不大,关键在于模型的构建思路。在范例包中找到这个模型的.xls源文件,直接填入你的数据就可以使用了。


实用性:★★★★★

制作难度:★★★★

源文件下载:基于地图选择的动态图表_湖北

(本文由ExcelPro的图表博客 探讨专业有效的商务图表沟通之道,欢迎交流讨论!)










[此贴子已经被夜空星辰于2010-1-19 17:09:33编辑过]

188

主题

1022

帖子

2303

积分

财务副总监

暖洋洋

Rank: 7Rank: 7Rank: 7

积分
2303
QQ
发表于 2010-1-19 11:36:00 |显示全部楼层
财务BP与传统财务的区别是什么	2022.02.08 (周二)

高手啊

回复

使用道具 举报

6

主题

75

帖子

150

积分

会计师

Rank: 2Rank: 2

积分
150
发表于 2010-1-19 17:54:00 |显示全部楼层
佩服。
回复

使用道具 举报

6

主题

320

帖子

7556

积分

VIP

Rank: 12Rank: 12

积分
7556
发表于 2020-3-10 22:57:45 |显示全部楼层
学习了,感谢分享
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

返回顶部