Excel图表动态范围选择

时间:2010-09-21 16:34:33

标签: excel charts excel-2007 offset worksheet-function

我有一个客户端,它有一个简单但复杂的Excel工作表设置请求,我不能为世界的事情从哪里开始。我在画一个空白。

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

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

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

我想要发生的事情:当我在Q4下面添加下一个Q1时,图表“自动”选择最近的4Q。所以当我将数据更新为:

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表的大量更改,我希望可能有更容易/更好的“修复”。


编辑: @Lance Roberts~按照你的建议行事:
- 更多细节......设置数据使列信息在A中,但多个表的数据在B +中。表1是B / C.表2是D / E.等
- 数据也与表格不同。

顺便说一句:This Offset Description,我尝试过做的是调整类似于:

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个问题我还没有解决:数据没有正确对齐:Example

“数据”始终是最后一列,位于第二季度到最后一季度。上个季度总是空的。数据正在向右移动(在本例中,在2010年第3季度 - 不在正确的列下.11应该在4Q10之下.9.5应该在2010年第2季度之下。)

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


alt text

似乎有效。我必须改变的第一件事是CountA - 9(不是CountA - 8)。接下来是“列偏移”(0,1,2,3,...)。还要分解一些东西以使其更加划分(我必须训练其他人如何为她的报告需求做这件事)。

谢谢兰斯:)

2 个答案:

答案 0 :(得分:3)

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

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

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

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

=Sheet1!MYDATA

现在每次添加新行时,都会更改图表。

答案 1 :(得分:0)

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

将季度数据范围更改为Excel表格。选择范围,然后按 Ctrl + T 。在“插入表”中,确保选中了正确的数据范围,并选中了“我的表有标题”,然后按“确定”。这会将简单范围转换为具有魔法属性的特殊数据结构。

然后创建一个链接到该表的最后四行的新范围,并根据此新范围创建一个图表。这如下图所示。该表是A1:B9中特殊格式的范围(您可以选择较少的面部风格),绘图范围为D1:E5。

Range converted to Table, with plotting range and chart.

细胞D2至D5中的公式如下。复制D2:D5并粘贴到E2:E5中以完成我们绘图范围内的公式。

D2:= INDEX(表1 [季],ROWS(表1 [季]) - 3) D3:= INDEX(表1 [季],ROWS(表1 [季]) - 2) D4:= INDEX(表1 [季],ROWS(表1 [季]) - 1) D5:= INDEX(表1 [季],ROWS(表1 [季]))

Table1是分配给Table的名称,Quarter是Table的第一列的名称(以及列标题)。您无需键入所有这些,只需选择表中的列即可。随着表的扩展或收缩,Table1 [Quarter]跟踪变化。

现在添加一个新数据点。表格扩展了,我们在D1中的小暂存区域:E5链接到表格的最后四行。

Table, plotting range, and chart, showing new last-four data points.

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

Table, plotting range, and chart, again showing new last-four data points.