Excel图表dynamic范围select

我有一个客户,有一个简单而复杂的Excel表单设置的要求,我不能从世界的事情开始。 我正在画空白。

我们有一个数据范围。 例:

Quarter Data 2010Q1 1 2010Q2 3 2010Q3 4 2010Q4 1 

我有一个build立在此之上的图表。 更改数据,图表更改,保护工作表,以防止其他用户更改旧数据。 简单。

我想要发生的事情:当我在Q4下面添加下一个Q1时,图表“自动”select最近的第四季度。 所以当我更新数据到:

 Quarter Data 2010Q1 1 2010Q2 3 2010Q3 4 2010Q4 1 2011Q1 7 

图表将显示过去4个季度(2010Q2到2011Q1)的数据。 目标是:将“旧”数据保留在同一张表上,但将图表更新到最近几个季度。

我在想:“固定”的数据位置,颠倒数据(新的数据在顶部),只是插入行每个新的季度:

 Quarter Data 2011Q2 9 2011Q1 7 2010Q4 1 2010Q3 4 2010Q2 3 2010Q1 1 

但是,这将涉及到已有的Excel表单的很多变化,我希望可能有一个更容易/更好的“修复”。


编辑:@兰斯·罗伯茨〜运行你的build议:
– 更多的细节…数据的设置使得列信息在A中,但多个表的数据在B +中。 表1是B / C。 表2是D / E。 等等。
– 数据也位于与表格不同的工作表上。

通过: 这个偏移量说明 ,我试着做的是调整类似于这样的:

 NAME FORMULA OFFSET(range, rows, columns, height, width ) DATA0 =OFFSET('DATASHEET'!$A$2, COUNTA('DATASHEET'!$A:$A - 8, 0, 8, 1) DATA1 =OFFSET('DATASHEET'!$A$2, COUNTA('DATASHEET'!$A:$A - 8, 1, 8, 1) DATA2 =OFFSET('DATASHEET'!$A$2, COUNTA('DATASHEET'!$A:$A - 8, 2, 8, 1) 

目标是将B / C / etc数据的长度/位置绑定到A.所以如果我在A上添加一列,与Data1 / 2绑定的东西会相应地调整(或者3/4/5等等,不同的床单)

我希望数据单元被第一行选取,然后是一个偏移数字以获得数据x列。 公式上的变化似乎不起作用。

1个问题我还没有解决:数据没有正确alignment: 例

“数据”始终是第二季度到最后一季度的最后一列。 上个季度总是空的。 数据正在向右移动(在这个例子中,在2010年第三季度 – 不在正确的栏目下,11季度应该低于第四季度,9.5应该低于第二季度)。

我知道我得到一些简单的错误…


替代文字

似乎正在工作。 我不得不改变的第一件事是CountA – 9(不是CountA – 8)。 接下来是“列偏移”(0,1,2,3,…)。 也分开一些东西,使其更加划分(我必须培训别人如何做到这一点,她的报告需求)。

谢谢兰斯:)

如果图表与数据在同一张纸上:

将数据(A2)的第一个单元格命名为TESTRANGE。 创build一个命名范围MYDATA,如下面的公式:

 =OFFSET(TESTRANGE, COUNTA($A:$A) - 5, 0, 4, 2) 

现在,转到图表SOURCE DATA对话框的SERIES选项卡,并将VALUES语句更改为:

 =Sheet1!MYDATA 

现在每当你添加一个新的行,它会改变图表。

我知道这是一个古老的问题,但我想分享一个可能更容易的替代scheme。

将您的Quarter-Data范围更改为Excel表。 select范围,然后按Ctrl + T。 在“插入表”中,确保选中了正确的数据范围,并且选中了“我的表已包含标题”,然后按“确定”。 这将简单的范围转换成具有神奇属性的特殊数据结构。

然后创build一个新的范围链接到此表的最后四行,并基于这个新的范围创build一个图表。 如下所示。 该表格是A1:B9中的特殊格式的范围(您可以select较less的脸型),绘图范围是D1:E5。

范围转换为表,绘图范围和图表。

单元格D2到D5中的公式如下。 复制D2:D5并粘贴到E2:E5中以完成绘图范围内的公式。

D2:= INDEX(Table1 [Quarter],ROWS(Table1 [Quarter]) – 3)D3:= INDEX(Table1 [Quarter],ROWS(Table1 [Quarter]) – 2)D4:= INDEX(Table1 [Quarter], ROWS(Table1 [Quarter]) – 1)D5:= INDEX(Table1 [Quarter],ROWS(Table1 [Quarter]))

Table1是分配给表的名称,Quarter是表的第一列(也是列标题)的名称。 您不需要input所有这些,只需select表中的列即可。 当表扩展或收缩时,表1 [季度]跟踪变化。

现在添加一个新的数据点。 桌子展开,我们在D1:E5的小集结区连接到桌子的最后四行。

表格,绘图范围和图表,显示新的最后四个数据点。

随着我们增加数年的数据,公式和图表保持不变。

表,绘图范围和图表,再次显示新的最后四个数据点。