我正在设置几个图表,用于动态选择数据集中的最后一行,或者可用行数,如果它更小 . 我有这个设置和工作,但我希望所有的图表也使用(动态大小)范围的类别轴值,我遇到了麻烦 .
如果我在列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 回答
我想确保分享我开始工作的解决方案 . 我没有依赖ADDRESS / INDIRECT函数,只是做了简单的代数 . 它是ugle,包括必须纠正的逐个错误,但无论数据集的长度如何,这都有效:
也就是说,如果我知道我总是想从A列中绘制我的类别值,这将计算出我的最后一个数据点的类别列顶部向下的行数,并向下偏移那么远,然后偏移0行,然后使长度与数据集的长度相同,然后返回,结果是一列宽 . 不漂亮,但它的工作原理 .