我正在尝试创建一个使用该INDIRECT
函数动态构建的范围的图表。Excel 确实可以识别我正在使用的范围INDIRECT
,因为它会突出显示工作表上的相应范围:
但是,在保存图表时,我收到一条错误消息,指出该函数无效:
有谁知道问题是什么/如何创建从特定起点到特定终点的动态图表范围?
PS:您可以在此处下载上述电子表格。我使用的公式:
=INDIRECT("sheet!"&E2&":"&E3)
我正在尝试创建一个使用该INDIRECT
函数动态构建的范围的图表。Excel 确实可以识别我正在使用的范围INDIRECT
,因为它会突出显示工作表上的相应范围:
但是,在保存图表时,我收到一条错误消息,指出该函数无效:
有谁知道问题是什么/如何创建从特定起点到特定终点的动态图表范围?
PS:您可以在此处下载上述电子表格。我使用的公式:
=INDIRECT("sheet!"&E2&":"&E3)
您尝试这样做的方式是不可能的。图表数据范围必须有一个固定地址。
有一种方法可以解决这个问题,那就是使用命名范围
将您想要的数据行数放在一个单元格中(例如,E1)因此,使用您的
示例,我Number of Rows
放入D1和E16
在名称管理器中,定义
我使用xrange和yrange的数据和标题的名称,并将它们定义为:
xrange: =OFFSET(Sheet1!$A$2,0,0,Sheet1!$E$1)
yrange: =OFFSET(Sheet1!$B$2,0,0,Sheet1!$E$1)
现在,到您的图表 - 您需要知道工作簿的名称(一旦设置好,Excel 的跟踪更改功能将确保引用保持正确,无论任何重命名)
为保留Chart data range
空白
,Legend Entries (Series)
像往常一样输入标题,然后输入您为数据定义的名称(请注意,使用命名范围需要工作簿名称)
对于Horizontal (Category) Axis Labels
,输入您为标签定义的名称
现在,通过更改 E1 中的数字,您将看到图表发生了变化:
我的类似于肖恩的优秀答案,但允许开始和结束日。首先创建两个命名范围,它们使用索引/匹配公式根据 E2 和 E3 选择开始和结束日期:
日
=INDEX(Sheet1!$A:$A,MATCH(Sheet1!$E$2,Sheet1!$A:$A,0)):INDEX(Sheet1!$A:$A,MATCH(Sheet1!$E$3,Sheet1!$A:$A,0))
rng值
=INDEX(Sheet1!$B:$B,MATCH(Sheet1!$E$2,Sheet1!$A:$A,0)):INDEX(Sheet1!$B:$B,MATCH(Sheet1!$E$3,Sheet1!$A:$A,0))
然后您可以单击图表中的系列并将公式修改为:
=SERIES(Sheet1!$B$1,Sheet1!rngDay,Sheet1!rngValue,1)
这是一篇关于如何在图表中使用动态范围的不错的Chandoo 帖子。
只是比特和谷歌的另一个答案..
如果您仍想引用您的开始和结束单元格,您需要为您的日期范围和值范围添加一个单独的公式。公式如下,屏幕截图显示了使用的公式。
日范围:
="Sheet1!"&$F$2&":"&ADDRESS(ROW(INDIRECT($F$3)),COLUMN(INDIRECT($F$2)))
值范围:
="Sheet1!"&ADDRESS(ROW(INDIRECT($F$2)),COLUMN(INDIRECT($F$3)))&":"&$F$3
然后添加两个引用INDIRECT
这些单元格值的范围
按 Ctrl+F3,单击新建,并添加一个名为“chart_days”的新范围,参考=INDIRECT(Sheet1!$F$4)
; 和一个名为“chart_values”的新范围,指=INDIRECT(Sheet1!$F$5)
最后,在您的图表中,添加一个系列=nameOfYourWorkbook!chart_values
并编辑要参考的类别=nameOfYourWorkbook!chart_days
我OFFSET
用来创建一个定义的名称公式,以便我可以定义数据的所有范围,允许我有一个开始的结束日期(或任何数据集的开始和结束位置)。
对于一个简单的图表,我将 CategoryLabels 名称定义如下:
= OFFSET($A$5; (InicitialMonth-1); 0; LastMonth - (InitialMonth-1))
和 DataCars 如下:
= OFFSET($B$5; (InicitialMonth-1); 0; LastMonth - (InitialMonth-1))
您必须按照相同的过程定义与要包含的系列一样多的名称。在这个简单的例子中,我只包括汽车销售。
Initial Month 和 Last Month 是为单个单元格定义的范围名称,用于指示将包含图表的哪些月份(从开始月份到结束月份)。
请记住,正如 Sean Cheshire 和其他人所解释的,要使用图表值的名称,必须包含电子表格的名称。
根据您显示的公式: =INDIRECT("sheet!"&E2&":"&E3) 您没有正确命名工作表。
我原以为会是Sheet1!或Sheet2!等等。您的公式解析为 =sheet!E2:E3 这不是一个有效的地址。您收到的错误消息意味着 Excel 无法将输入解析为 INDIRECT。INDIRECT是一个有效的函数,因此您提供的参数必须是无效的。
上述所有说明工作表名称的答案都已纠正您的错误但未提及... ;)
具有间接函数的命名公式在图表中不起作用。它适用于其他来源,因为您所需的动态源将被突出显示,但是当您在图表中时,它不会被评估。希望微软能解决这个问题。
如果折线图的范围是命名变量,并且该变量通过单元格对范围具有 INDIRECT() 引用,则该变量必须至少有 2 个以逗号分隔的 INDIRECT()。