在Excel中图表数据区域是否能动态设置

比如='sheet1'!$A$2:$B$X. (X由=COUNTIF(A:A,"*")动态算出)。谢谢!

方法如下:
一、 假设:假定A2:B5为初始的图表区域,要求,当A5以下的行数出现数字时,A2:B5这个区域自动向下延伸至数据的结尾。

二、方法:
单击A2,按“Ctrl+F3”,名称对话框中“新建”,名称输入“myRange“,引用位置输入"=OFFSET(A2,0,0,COUNTA($A$2:$A$65536),2)",按确定。
在图表的引用数据区域里面,输入“myRange“,这样动态图表就做成了。

结束。追问

非常感谢qingyinie的方法,只是:(1)您的假设部分我不知道如何设置。(2)图表的数据区域我输成myRange后,实际上它会把Offset计算的当时区域填入的,此时保存作为模板,图表的数据区域已经是此时固定的区域了.因此,当外部程序往此模板填充数据时,图表的数据区域并没有动态变化,需要重新要从图表上选择数据区域重新输入myRange来刷新。
这就是目前我操作的情况。请问qingyinie,我的操作有何不对。谢谢您。

追答

(1)假设部分不需要设置,只是说操作的当前状态,和希望完成的动作。即具体化你的提问。
(2)图表完成后,不要保存为模板。或者保存成模板再调用模板时,重新在数据区域输入myRange,但只需要输入一次,第二次有外部数据更新时,图表会跟着自动变化。
(3)我说的是基本方法,你如果需要跟其他外部数据更新,模板保存等联合起来应用,先要掌握这个基本方法。你可以按照我说的前提,模拟几个数据,做一下动态图表,成功了,再拓展其他应用。

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-03-07
我对这个也不是很懂,给你个网址去看看,也许可以帮得了你。http://club.excelhome.net/thread-560917-1-1.html

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 必须为正数。

说明

如果行数和列数偏移量超出工作表边缘,函数 OFFSET 返回错误值 #REF!。
如果省略 height 或 width,则假设其高度或宽度与 reference 相同。
函数 OFFSET 实际上并不移动任何单元格或更改选定区域,它只是返回一个引用。函数 OFFSET 可用于任何需要将引用作为参数的函数。例如,公式 SUM(OFFSET(C2,1,2,3,1)) 将计算比单元格 C2 靠下 1 行并靠右 2 列的 3 行 1 列的区域的总值。追问

图表的数据来自一个固定Sheet的固定两列,只是数据源的行数每次填充时是不定的,但可以由公式=COUNTIF(A:A,"*")计算到此次填充的最大有效行数。比如='sheet1'!$A$2:$B$5表示此次填充的有效数据源是A,B两列从第2行到第5行的区域。现在是用程序动态生成报表的,每次的最大有效行数是变化的。问题的实际就是:如何把图表数据源由静态的='sheet1'!$A$2:$B$5变成动态的='sheet1'!$A$2:$B$X (其中X的值就是=COUNTIF(A:A,"*"))

相似回答