OFFSET函数可能很多用户比较陌生,但它在Excel中承担的作用却非常强大,本实例将通过OFFSET函数实现Excel图表的动态显示。
在Excel图表中,如果修改数据表中的数据值,相对应的图表也会立即刷新。但是,如果在数据表中增加一行数据或减少一行数据,相对应的图表就不能随着数据行的多少自动缩放了。但现在由于填充在工作表中的数据行不确定(如图7所示),如何实现图表数据系列的动态添加和减少呢?
图7 需要动态改变的图表
在本例中最关键的是定义命名公式,这个名称将最终用作图表系列中SERIES公式中的变量,操作步骤如下:
(1)执行菜单栏中的【插入】|【名称】|【定义】命令,打开“定义名称”对话框。
(2)在“在当前工作簿中的名称”文本框中,输入Date,在“引用位置”文本框中输入下面的公式:=OFFSET(Sheet1!$A$2,0,0,COUNTA(Sheet1!$A:$A)-1,1),如图8所示。
图8 定义工作簿名称
OFFSET函数引用第一个数据点(A2单元格),并且利用COUNTA函数确定该列中的单元格个数。由于列A的第一行为标题,所以要从计数结果中减去1。
(3)单击【添加】按钮创建名为Date的名称。
(4)在“在当前工作簿中的名称”文本框中,输入Sales,在“引用位置”文本框中输入下面的公式:=OFFSET(Sheet1!$B$2,0,0,COUNTA(Sheet1!$B:$B)-1,1)。单击【添加】按钮创建名为Sales的名称。
(5)单击【关闭】按钮,关闭“定义名称”对话框。
下面,我们就开始利用原始数据系列创建图表,操作步骤如下:
(1)选择工作表数据中的包含了数据的A列和B列单元格区域,然后执行菜单栏中的【插入】|【图表】命令,打开“图表向导”对话框。选择图表类型为“柱形图”,图标子类型为“簇状柱形图”。
(2)直接单击【完成】按钮,完成图表的制作。根据需要调整坐标轴、图例和绘图区的格式,使其更美观。调整后的图表如图9所示。
图9 创建完成的图表
(3)选中制作完成的图表,然后执行菜单栏中的【图表】|【源数据】命令,打开“源数据”对话框。
(4)单击“系列”标签,打开“系列”选项卡。在“值”引用框中输入公式:=自动缩放.xls!Sales;在“分类轴标记”引用框中输入公式:=自动缩放.xls!Date,如图10所示。
图10 定义数据系列属性
提示:自动缩放.xls为该工作簿的文件名。
(5)设置完成后单击【确定】按钮。
这样,当在原始数据中增加新的数据行或删除数据行时,对应的图表就会自动增加新的数据系列或删除数据系列,图表的自动缩放效果就可以实现了。
提示:掌握自动缩放图表的关键是要理解OFFSET函数的使用,这个偏移量函数返回一个从指定位置引用的单元格偏移的单元格区域。
OFFSET函数的语法为:OFFSET(reference,rows,cols,height,width)
其中:
Reference:作为偏移量参照系的引用区域。Reference 必须为对单元格或相连单元格区域的引用;否则,函数OFFSET返回错误值#VALUE!。 Rows:相对于偏移量参照系的左上角单元格,上(下)偏移的行数。如果使用5作为参数Rows,则说明目标引用区域的左上角单元格比reference低5行。行数可为正数(代表在起始引用的下方)或负数(代表在起始引用的上方)。 Cols:相对于偏移量参照系的左上角单元格,左(右)偏移的列数。如果使用5作为参数Cols,则说明目标引用区域的左上角的单元格比reference靠右5列。列数可为正数(代表在起始引用的右边)或负数(代表在起始引用的左边)。 Height:高度,即所要返回的引用区域的行数。Height必须为正数。 Width:宽度,即所要返回的引用区域的列数。Width必须为正数。