在Excel 中创建图表后,有时需要不断地向源数据中添加数据,如果每次都用手工更改源数据的方法来更新图表显得有些繁琐。我们可以使用“表”和公式的方法来为Excel图表设置一个动态数据源,当向图表数据源中添加或删除数据后,图表会自动更新。本文以Excel 2007为例介绍如下:
假设图表的数据源在工作表“2009年销售数量”的A1:B11区域中,以后还需要继续在下一行中添加数据。
方法一:使用Excel表
在Excel 2007中可以将区域转换为Excel表,在Excel 2003中称之为“Excel列 表”。Excel表是一系列包含相关数据的行和列,它有许多特殊的功能。例如当我们在Excel表的后面添加数据时,Excel表会自动扩展。要将区域转化为Excel表有一些要求,例如,区域中的数据必须与其他数据分开,即其周围有空行和空列包围,区域的每一列的第一行都有一个唯一的列标题,区域中间没有空行等。如果数据源符合创建Excel表的要求,可以将图表的数据源设置为Excel表。
选择图表的数据源区域A1:B11中的任意单元格,在功能区中选择“插入”选项卡,在“表”组中,单击“表”按钮,弹出“创建表”对话框,单击“确定”按钮,Excel将图表数据源区域转换为Excel表。
这样就将数据源区域创建为Excel表,以后在该区域下一行中添加数据,如本例中的第12行,图表将自动更新。
方法二:用OFFSET函数
1.为数据源区域定义名称。
假如图表的数据源区域包含在A1:B25区域中,目前可用的数据源为A1:B11,以后不断添加,但不超出区域A1:B25。先给A列中的数据定义一个名称,A列中的数据为图表分类(X)轴标志。在功能区中选择“公式”选项卡,在“定义的名称”组中单击“定义名称”,在“新建名称”对话框中,在“名称”右侧输入一个名称,如“月份”,然后在“引用位置”下输入公式:
=OFFSET($A$2,0,0,COUNTA($A$2:$A$25),1)
用同样的方法将数值列定义另一个名称“销量”,其公式为:
=OFFSET($B$2,0,0,COUNTA($B$2:$B$25),1)
2.设置动态数据源。
以折线图为例。选择A1:B10区域中的任意单元格,在功能区中选择“插入”选项卡,选择“折线图”,Excel将插入一个折线图。
①直接编辑系列公式:
在图表中单击“销量”系列,可以在编辑栏中看到该系列的公式为:
=SERIES('2009年销售数量'!$B$1,'2009年销售数量'!$A$2:$A$11,'2009年销售数量'!$B$2:$B$11,1)
将上述公式中$A$2:$A$11改为“月份”,$B$2:$B$11改为“销量”,即
=SERIES('2009年销售数量'!$B$1,'2009年销售数量'!月份,'2009年销售数量'!销量,1)
然后按回车键。
②在对话框中修改:
在“绘图区”中右击,在弹出的快捷菜单中选择“选择数据”。
在弹出的“选择数据源”对话框中,在“图例项(系列)”下单击“编辑”按钮,弹出“编辑数据系列”对话框。
在“系列值”下将公式改为:
='2009年销售数量'!销量
单击“确定”按钮。然后在“选择数据源”对话框的“水平分类(轴)标签”下单击“编辑”按钮,弹出“轴标签”对话框。
将“轴标签区域”下的公式改为:
='2009年销售数量'!月份
单击“确定”按钮。以后在图表数据源区域下一行中添加数据,如本例中的第12行,图表将自动更新。