无法在Excel图表使用的命名范围内使用INDIRECT

时间:2018-09-09 01:18:10

标签: excel excel-formula

我正在设置多个图表,这些图表旨在动态选择数据集中的最后一行,或者可用行数(如果较小的话)。我已经设置好并且可以正常工作,但是我希望所有图表也为类别轴值使用(动态大小)范围,这给我带来了麻烦。

如果我在A列中有类别,在B列中有值,并且有一个命名值'chtLen,那么说'values'是由=OFFSET(Sheet1!$B$1,COUNT(Sheet1!$B:$B),0,-MIN(chtLen,COUNT(Sheet1!$B:$B)),1)定义的动态命名范围

然后,将“类别”值创建为=OFFSET(values,0,-1)

很简单

Excel图表将接受=Book1.xlsx!categories作为类别轴值的范围,并且一切正常。但是,如果我想始终使用列A,并在该列中获取一个范围,就是说,我想将“类别”更改为=OFFSET(INDIRECT(ADDRESS(MIN(ROW(Book1.xlsx!values)),1)),0,0,COUNT(Book1.xlsx!values),1)

虽然仍在命名值编辑器中,但是这两个选项都将正确选择相同的范围。但是,当我尝试将“类别”更改为后一个公式时,类别轴将从图表中消失。尝试用该定义将=Book1.xlsx!categories编辑或添加到图表中会导致“ Excel发现问题...检查单元格引用,范围名称,定义的名称以及与公式中其他工作簿的链接正确”。 >

我唯一想改变的是我如何到达一个范围。我想念什么?

1 个答案:

答案 0 :(得分:0)

我想确保我分享了自己要使用的解决方案。我没有依赖于ADDRESS / INDIRECT函数,而是做了简单的代数。这很丑陋,并且包含必须纠正的不一的错误,但这不管数据集的长度如何都可以起作用:

=offset($A$1, ROW(values)+ROWS(values)-2, 0, -ROWS(values), 1)

也就是说,如果我知道我一直想从A列中绘制类别值,这将找出我的最后一个数据点从category列顶部向下多少行,并向下偏移那么远,然后偏移0行,然后使长度与数据集的长度相同,然后向上备份,结果为一列宽。不漂亮,但有效。