Excel 中的窗体控件功能非常强大,但有关它们的资料却很少见,甚至
Excel 帮助文件也是语焉不详。本文通过一个实例说明怎样用窗体控件快速构造出动态图表。
假设有一家公司要统计两种产品 ( 产品 X ,产品 Y)
的销售情况,这两种产品的销售区域相同,不同的只是它们的销售量。按照常规的思路,我们可以为两种产品分别设计一个图表,但更专业的办法是只用一个图表,由用户选择要显示哪一批数据
—— 即,通过单元按钮来选择图表要显示的数据。
为便于说明,我们需要一些示例数据。首先在 A 列输入地理区域,如图一,在 B2 和
C2 分别输入 “ 产品 X” 和 “ 产品 Y” ,在 B3:C8 区域输入销售数据。

图 1
一、提取数据
接下来的步骤是把某种产品的数据提取到工作表的另一个区域,以便创建图表。由于图表是基于提取出来的数据创建,而不是基于原始数据创建,我们将能够方便地切换提取哪一种产品的数据,也就是切换用来绘制图表的数据。
在 A14 单元输入 =A3 ,把它复制到 A15:A19 。我们将用 A11
单元的值来控制要提取的是哪一种产品的数据 ( 也就是控制图表要描述的是哪一批数据 ) 。现在,在 A11 单元输入 1 。在 B13
单元输入公式 =OFFSET(A2,0,$A$11) ,再把它复制到 B14:B19 。
OFFSET
函数的作用是提取数据,它以指定的单元为参照,偏移指定的行、列数,返回新的单元引用。例如在本例中,参照单元是 A2(OFFSET
的第一个参数 ) ,第二个参数 0 表示行偏移量,即 OFFSET 返回的将是与参照单元同一行的值,第三个参数 ($A$11)
表示列偏移量,在本例中 OFFSET 函数将检查 A11 单元的值 ( 现在是 1) 并将它作为偏移量。因此,
OFFSET(A2,0,$A$11) 函数的意义就是:找到同一行且从 A2(B2) 偏移一列的单元,返回该单元的值。
现在以 A13:B19 的数据为基础创建一个标准的柱形图:先选中 A13:B19
区域,选择菜单 “ 插入 ”→“ 图表 ” ,接受默认的图表类型 “ 柱形图 ” ,点击 “ 完成 ” 。检查一下: A13:B19
和图表是否确实显示了产品 X 的数据;如果没有,检查你是否严格按照前面的操作步骤执行。把 A11 单元的内容改成 2 ,检查
A13:B19 和图表都显示出了产品 B 的数据。
二、加入选项按钮
第一步是加入选项按钮来控制 A11 单元的值。选择菜单 “ 视图 ”→“ 工具栏
”→“ 窗体 ”( 不要选择 “ 控件工具箱 ”) ,点击工具栏上的 “ 选项按钮 ”
,再点击图表上方的空白位置。重复这个过程,把第二个选项按钮也放入图表。
右击第一个选项按钮,选择 “ 设置控件格式 ” ,然后选择 “ 控制 ” ,把 “
单元格链接 ” 设置为 A11 单元,选中 “ 已选择 ” ,点击 “ 确定 ” ,如图二。

图 2
把第一个选项按钮的文字标签改成 “ 产品 X” ,把第二个选项按钮的文字标签改成
“ 产品 Y”( 设置第一个选项按钮的 “ 控制 ” 属性时,第二个选项按钮的属性也被自动设置 ) 。点击第一个选项按钮 ( 产品
X) 把 A11 单元的值设置为 1 ,点击第二个选项按钮把 A11 单元的值设置为 2 。
点击一下图表上按钮之外的区域,然后依次点击两个选项按钮,看看图表内容是否根据当前选择的产品相应地改变。
按照同样的办法,一个图表能够轻松地显示出更多的数据。当然,当产品数量很多时,图表空间会被太多的选项按钮塞满,这时你可以改用另一种控件
“ 组合框 ” ,这样既能够控制一长列产品,又节约了空间。
另外,你还可以把 A11 单元和提取出来的数据 (A13:B19)
放到另一个工作表,隐藏实现动态图表的细节,突出动态图表和原始数据。
上一篇: 无
下一篇: 完
【本站声明】本站刊载的部分内容全部来源互联网,对于此类文章本站仅提供交流平台,不为其版权负责。如涉及侵犯您的知识产权的文章,请联系我们,我们将尽快做出更正。并向您表示感谢!同时特别感谢对本站所有支持的网友。