使用INDIRECT的动态图表范围:该功能无效(尽管范围突出显示)

Max*_*Max 28 excel dynamic range excel-formula excel-indirect

我正在尝试创建一个使用该INDIRECT函数动态构建的范围的图表.Excel确实识别我正在创建的范围,INDIRECT因为它突出显示工作表上的相应范围:

在此输入图像描述

但是在保存图表时,我收到一条错误消息,指出该函数无效:

在此输入图像描述

有人知道问题是什么/如何创建从特定开始到特定终点的动态图表范围?

PS:你可以在这里下载上面的电子表格.我使用的公式:
=INDIRECT("sheet!"&E2&":"&E3)

Sea*_*anC 21

您尝试这样做的方式是不可能的.图表数据范围必须具有固定地址.

有一种解决方法,那就是使用命名范围

放在一个细胞在您的数据所需的行数(如E1)
因此,使用你的榜样,我把Number of RowsD16E1

在名称管理器中,定义
我使用xrangeyrange的数据和标题的名称,并将它们定义为:

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中的数字,您将看到图表更改:
E1中的6E1中的4

  • 好一个。我以为我知道该怎么做,但我花了很长时间才记住!我发现的主要问题是您不能只使用命名范围,您必须使用工作簿或工作表名称进行限定。 (2认同)

Dou*_*ncy 16

我类似于肖恩的优秀答案,但允许开始和结束的一天.首先创建两个命名范围,使用索引/匹配公式根据E2和E3选择开始和结束日期:

rngDay

=INDEX(Sheet1!$A:$A,MATCH(Sheet1!$E$2,Sheet1!$A:$A,0)):INDEX(Sheet1!$A:$A,MATCH(Sheet1!$E$3,Sheet1!$A:$A,0))
Run Code Online (Sandbox Code Playgroud)

rngValue

=INDEX(Sheet1!$B:$B,MATCH(Sheet1!$E$2,Sheet1!$A:$A,0)):INDEX(Sheet1!$B:$B,MATCH(Sheet1!$E$3,Sheet1!$A:$A,0))
Run Code Online (Sandbox Code Playgroud)

然后,您可以单击图表中的系列并将公式修改为:

=SERIES(Sheet1!$B$1,Sheet1!rngDay,Sheet1!rngValue,1)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

这是关于如何在图表中使用动态范围的一个很好的Chandoo帖子.