工作中我们有时候会遇到一些数据,在对这些数据绘制图表的时候,并不需要将所有的数据全部画出,而是只需要设置一个筛选条件,选择什么条件的数据,就展示什么内容的的图表。这种功能,我们可以用Excel"动态"图标来实现。当然这个动态并不是指自己实时变化更新的动态,而是随着我们筛选条件的变更而自动绘制的一种图表展现形式。
在学习绘制Excel动态图表时,先来了解3个函数:index,match,offset.
index和match函数的介绍可以在之前的微头条中查看:index和match函数。下面介绍offset函数。
【offset】
公式:=OFFSET(reference,rows,cols,[height],[width])
函数的功能:返回对单元格或单元格区域中指定行数和列数的区域的引用。 返回的引用可以是单个单元格或单元格区域。 可以指定要返回的行数和列数。
函数有5个参数:
reference:基点,即引用单元格区域的基准点;
rows:偏移行数,正数表示向右偏移,负数表示向左偏移;
cols:偏移列数,正数表示向下偏移,负数表示向上偏移;
height:引用高度,只能为正数;
width:引用宽度,只能为正数。
前三个参数确定要返回单元格区域的新基准点,后两个参数确定以新基准点为准,横向、纵向返回的区域。
下面我们看一个具体例子,来加深对offset函数的理解。



绘制动态图表一(下拉菜单)
现有一份平台A、B、C在2019年每月的销售额数据,我们来绘制一份选择不同平台,可以自动生成对应平台2019年销售额趋势折线图。

1.建立动态的的标题区域
在B7单元格输入“平台:"作为标题选择提示。
鼠标选中C7单元格,点击菜单栏"数据",点击"数据验证"按钮,在"允许"下拉框中选择"序列",在"来源"输入框中,点击右边向上小箭头,然后框选A2至A4区域。
这样就生成一个可以下拉的菜单选项。

在B8单元格输入公式:=C7&" 2019年全年销售额走势",用于生成自动图表标题。

2.制作图表数据区域
将B2至M2区域的越呆信息复制到B9至M9区域。
在B10单元格输入公式:=INDEX($B$2:$M$4,MATCH($C$7,$A$2:$A$4,0),MATCH(B9,$B$1:$M$1,0))
公式的最外层函数是index,目的是从B2:M4区域中检索出C7单元格所示的平台,在各月份对应的销售额。
index 函数3个参数的解释:
第一个参数是检索区域:$B$2:$M$4,使用绝对引用;
第二个参数是检索C7单元格所示平台所在的行,用MATCH($C$7,$A$2:$A$4,0)来查找;
第三个参数是检索B9单元格所示月份所在的列,用MATCH(B9,$B$1:$M$1,0)来查找。
最后横向填充到M10单元格。这样就匹配出单个平台每月的销售额数据了。

3.绘制图表
选中B9至M10区域,点击插入图表,选择图表类型为折线图。

对图标进行美化,将图标宽度拉宽至与原数据一样宽,然后移动图表,使其与表格标题部分左右对齐,最后向上移动图表,遮盖数据。

最后就生成一份动态图表。可以通过单元格筛选不同平台,来查看不同平台的图表数据。

绘制动态图表二(控件)
现有一份ABCDE各个产品在四个季度的销量。我们来绘制一个可以通过控件来选择季度,进而得到自动生成对应图表的动态图表。

控件功能在"开发工具"中,如果Excel菜单中没有,需要在自定义功能区中添加上。

插入控件
点击开发工具,插入表单控件,选择图示表控件。

鼠标左键拖拽,生成一个控件区域,然后右键,点击设置控件格式。

设置控件
数据源区域选择B4至B7区域(作用是提供控件可点击的菜单),单元格链接选择B9(作用是返回控件菜单相应的索引),最后点击确定,会生成一个带有可点击的控件菜单。还可以右键,适当调整控件尺寸。


设置数据
将C3至G3区域复制到C10至G10,在B11单元格输入公式:=offset($B$3,B9,,1,6).
公式含义:
$B$3:为基准点
B9为控件菜单选中后对应的索引,值为1表示控件菜单区域的第1行:即第一季度。所以B9的值可以用作offset函数的行偏移量。
列不需要偏移,所以为空。
要返回的区域高度为1,宽度为6。

绘制图表
选中B10至G11区域,点击插入图表,选择图表类型为柱形图。

对图标进行美化,设置适当长、宽,然后向上移动,遮盖数据。

最后得到一个控件动态图表。点击控件相应的季度,即可自动生成得到不同的柱形图。
