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

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

有人知道问题是什么/如何创建从特定开始到特定终点的动态图表范围?
PS:你可以在这里下载上面的电子表格.我使用的公式:
=INDIRECT("sheet!"&E2&":"&E3)
Sea*_*anC 21
您尝试这样做的方式是不可能的.图表数据范围必须具有固定地址.
有一种解决方法,那就是使用命名范围
放在一个细胞在您的数据所需的行数(如E1)
因此,使用你的榜样,我把Number of Rows在D1和6在E1
在名称管理器中,定义
我使用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中的数字,您将看到图表更改:


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帖子.