首页 文章

不能在Excel图表使用的命名区域中使用INDIRECT

提问于
浏览
0

我正在设置几个图表,用于动态选择数据集中的最后一行,或者可用行数,如果它更小 . 我有这个设置和工作,但我希望所有的图表也使用(动态大小)范围的类别轴值,我遇到了麻烦 .

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

然后它's simple to create a '类别'的值为 =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)

仍在命名值编辑器中时,这两个选项都将正确选择相同的范围 . 但是当我尝试将'categories'更改为后一个公式时,类别轴会从图表中消失 . 尝试使用该定义编辑或添加 =Book1.xlsx!categories 到图表会导致'Excel found a problem ... check that cell references, range names, defined names and links to other workbooks in your formulas are correct' .

我认为我唯一要改变的是我如何到达一个范围 . 我错过了什么?

1 回答

  • 0

    我想确保分享我开始工作的解决方案 . 我没有依赖ADDRESS / INDIRECT函数,只是做了简单的代数 . 它是ugle,包括必须纠正的逐个错误,但无论数据集的长度如何,这都有效:

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

    也就是说,如果我知道我总是想从A列中绘制我的类别值,这将计算出我的最后一个数据点的类别列顶部向下的行数,并向下偏移那么远,然后偏移0行,然后使长度与数据集的长度相同,然后返回,结果是一列宽 . 不漂亮,但它的工作原理 .

相关问题