【问题标题】:Excel chart dynamic range-selectionExcel图表动态范围选择
【发布时间】:2010-09-21 16:34:32
【问题描述】:

我有一个客户对 Excel 工作表设置有一个简单而复杂的请求,我不知道从哪里开始。我在画一个空白。

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

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

我有一个基于此的图表。更改数据、图表更改、保护工作表以防止其他 idi... er... 用户更改旧数据。很简单。

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

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

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

我在想:“固定”数据位置,反转数据(新数据在顶部),然后在每个新季度插入一行:

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

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

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


似乎工作正常。我必须更改的第一件事是 CountA - 9(不是 CountA - 8)。接下来是“列偏移”(0、1、2、3,...)。还要拆分一些内容以使其更加分区(我确实必须培训其他人如何根据她的报告需求执行此操作)。

谢谢兰斯 :)

【问题讨论】:

  • 0 是保持相同单元格引用的偏移量,因此在您的 3 个公式中,您需要将 columns 参数分别更改为 1、2、3(您也从 COUNTA 语句中删除了一个括号。
  • 是的......我要更新我的答案,因为我重新做了一些东西并让它工作了。

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


【解决方案1】:

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

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

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

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

=Sheet1!MYDATA

现在每次添加新行时,图表都会发生变化。

【讨论】:

  • 我明天会测试一下 :)
  • 已编辑问题,包含更多描述和更多信息。再次感谢 OFFSET 功能,它看起来绝对是朝着正确方向迈出的一步。
  • 终于得到了答案(上面发布了基础知识)。谢谢吨:)
【解决方案2】:

我知道这是一个老问题,但我想分享一个可能更简单的替代方法。

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

然后创建一个链接到该表最后四行的新范围,并根据这个新范围创建一个图表。如下图所示。表格是A1:B9中特殊格式的范围(可以选择少一点的风格),绘图范围是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 是表格第一列的名称(也是列标题)。您不需要输入所有这些,只需选择表格中的列。随着表的扩展或收缩,Table1[Quarter] 会跟踪变化。

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

随着我们添加多年的数据,公式和图表也会跟上。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-03-04
    • 1970-01-01
    • 2012-08-17
    • 1970-01-01
    • 2021-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多