听刘万祥老师讲“模拟范围滑尺的动态图表”

   一位读者来信的问题。

万祥大哥:

    这个博主使用水晶易表实现了下面的效果:这里,感觉挺实用的,不知excel能否实现这样的效果,还请赐教!

    根据沈浩老师的博文,文中使用的应该是水晶易表的范围滑尺部件。Excel中倒是可以模仿一下,不过不会有这么酷。

    下面是我的试验。图中,利用滚动条可以调整起止日期范围,图表会相应变化。下边还有一个缩略图,给出当前选择数据范围的位置提示。

做法:

1、绘制滚动条。

    用窗体控件绘制一个滚动条,设置其最小值为0,最大值为数据点的个数(这里为251),链接单元格为G6,用来记录用户选择的起始日期的位置。

    同样地,绘制一个调整截止日期的滚动条,链接单元格为G7

    

2、定义动态名称。

    定义如下的动态名称,根据用户设置的起止日期位置,偏移出两个动态区域。

date_choosed        =OFFSET(Sheet2!$B$5,Sheet2!$G$6,,Sheet2!$G$7-Sheet2!$G$6+1,1)

Ted_choosed         =OFFSET(Sheet2!$C$5,Sheet2!$G$6,,Sheet2!$G$7-Sheet2!$G$6+1,1)

 

3、完成动态图表。

    插入一个曲线图,修改其数据序列公式如下,引用刚才定义的动态名称:

=SERIES(Sheet2!$C$5,模仿范围滑尺的动态图表.xls!date_choosed,模仿范围滑尺的动态图表.xls!Ted_choosed,1)

    对图表简单格式化。

    以上3步的内容,如何操作可以参见《Excel图表之道》中动态图表一节的内容。

    

4、制作缩略图。

    我们在图表的下方提供一个缩略示意图,提示用户当前选择数据范围的位置。

    D列增加一列辅助数据,D6 = IF(AND(A6>=$G$6,A6<=$G$7),C6,0),双击右下角复制到底。目的是取出用户选择范围段的数据,将作为提示数据。

    B-D列数据制作一个图表,设置C列为曲线图,为全程曲线,D列为柱形图,只有选择范围段内有柱子。对图表简单格式化。

    由于要将一个图表格式化到缩略图那么小并不方便,我们可以利用拍照后再缩小的方法。将图表锚定到$Q$5:$X$20,与第3步的动态图表一样大小。对该区域拍照,将拍照的图片压扁到只有1行高,放置到动态图表下方,成为一个缩略图。

 

5、测试模型。

    操作两个滚动条,调整数据的起止范围,就会看到动态图表、缩略图都相应变化。操作也很方便,与水晶易表中的范围滑尺效果差不多。你也可以继续把图表美化得像沈老师的水晶易表风格。

    好了,下次你也可以这样耍酷一下了。不过,个人感觉这种做法的实际用途并不是太大,有些发烧。

 

    顺便推荐沈浩老师的博客,一个专注研究水晶易表运用于数据展现的博客,据我所知国内领先。我与沈浩老师有过一面之缘,其人非常儒雅,对统计自学成才。沈浩老师美感很好,绘制韩国炫酷风格的PPT、把Excel文件装扮得像水晶易表一样炫,那是轻车熟路。

 

本例知识点:

1、动态图表做法(窗体控件+offset动态名称)

2、拍照

3、运用Excel的思路与习惯

 

制作难度:★★★

实用性:  ★★★

范例文件下载:模拟范围滑尺的动态图表.xls

    精选图表好书,尽在EP图表书架!点击访问>>>

    Excel图表之道——如何制作专业有效的商务图表》,2010年最值得阅读的职场充电图书!购买链接:当当卓越淘宝互动网电子社,更多信息可查看图表之道专栏

(本文由ExcelPro的图表博客原创,转载请注明出处。ExcelPro的图表博客 探讨专业有效的商务图表沟通之道,欢迎交流讨论!) 

 


posted @ 2010-08-24 08:39  博文视点  阅读(686)  评论(0编辑  收藏  举报