动态图表也称交互式图表,指图表的内容可以随用户的选择而变化,是图表分析中比较高级的形式。使用动态图表能够突出重点数据,避免被其他不需要的数据干扰,从而提高数据分析效率。一个好的动态图表,可以让人从大量的数据里快速找到问题所在。

动态图表的基本原理,主要是通过交互和函数调用,生成临时数据源,并使用临时数据源制作出图表,其本质是图表源数据的变化。

一般有两种方法来实现:辅助系列法和动态名称法

本文讲讲动态名称法。相较于辅助系列法,定义名称的方法省去了辅助数据区域,直接用动态名称为图表提供数据源。

说明:本文中的Excel数据表名称为“动态图表2”。

1、添加选择器

在菜单栏[开发工具][插入]命令中选择[列表框]控件,在单元格T16画出一个列表框

用鼠标右键单击列表框,在弹出的快捷菜单单击[设置控件格式(F)],进入[设置对象格式]对话框,将[数据源区域]设置为统计类别所在的区域C9:C12,将[单元格链接]设置为存放选择结果的单元格C5,单击[确定]按钮。

这时,列表框的选择结果就以序号的方式反映在C5单元格了。如选择了“第一产业增加值”,则将其在数据区域的行数(第2行)填写到C5单元格。

2、定义动态名称

一般使用OFFSET函数来定义动态名称,以指定的单元格为原点,根据偏移量参数返回一个单元格或单元格区域,并可以指定返回的行数或列数。

在菜单栏[公式]选项卡,点击[定义名称],弹出[新建名称]对话框。

在弹出的[新建名称]对话框,输入[名称][引用位置],分别定义三个动态名称类别数据区域和年份。

3、插入图表

选中数据区域任意一行,在菜单栏[插入]选项卡,插入[带数据标记的折线图]。

4、更改图表数据源

将图表中的系列删除,再选中空白图表,在公式栏中输入系列公式:

=SERIES(动态图表2!类别,动态图表2!年份,动态图表2!数据区域,1)

再按键盘上的回车(Enter)键,则得到了由动态名称生成的折线图。

这时图表的源数据就由名称[类别][数据区域][年份]来控制了。当选择的类别改变,单元格C5的值也跟着改变,名称[类别][数据区域]所指向的区域也就发生了改变,则图表也跟随变化。

接下来看看效果,选择[第三产业增加值]后,则生成了对应的图表。

5、OFFSET公式说明

=OFFSET(原点,向下移动行数,向右移动列数,偏移后区域行数,偏移后区域列数)

原点:指偏移的起始参考位置

向下移动行数:指行方向的偏移量,正数向下,负数向上

向右移动列数:指列方向的偏移量,正数向右,负数向左

偏移后区域行数:为偏移后区域的高度(行数),可选项

偏移后区域列数:为偏移后区域的宽度(列数),可选项