Exceldynamic范围偏移公式排除#n / a

我有数据根据切片机而变化,我不能找出正确的偏移公式来select只有有效的数据值,换句话说,排除任何#N / A值。 数据看起来像这样:

|Column A | Column B |Column C| |----------------------------------| |Jan | #N/A | #N/A| |Feb | 4 | 40 | |Mar | 5 | 38 | |Apr | 12 | 10 | |May | #N/A | #N/A| |Jun | #N/A | #N/A| 

我想要偏移范围只select二月/三月/四月行。 但是,如果数据发生变化,因为我点击不同的filter(下面的例子),我希望它仍然只select非错误数据(1月/ 2月/ 3月/ 4月行):

 |Column A | Column B | Column C| |----------------------------------| |Jan | 30 | 60 | |Feb | 8 | 83 | |Mar | 53 | 14 | |Apr | 11 | 41 | |May | #N/A | #N/A| |Jun | #N/A | #N/A| 

请帮忙! 谢谢。

偏移function只能select单个单元格范围,但这应该仍然适合您的需要。 即使没有价值,一个沿着x轴的月份也应该包括所有月份。 偏移量函数只会使graphics以最早的月份开始,并在最后一个月结束。 没有任何价值的任何月份都只会在图表上没有绘制。

要在图表中使用命名区域,必须命名每个系列。 整个图表源数据范围不能使用dynamic范围。

定义以下三个在图表中使用的命名范围。 每列A,B和C有一个命名范围。每个命名范围都查看列B以确定包含哪些行:

月:

 =IF(COUNT(Sheet1!$B$2:$B$7)=0,Sheet1!$A$2,OFFSET(Sheet1!$A$1,MIN(IF(ISERROR(Sheet1!$B$2:$B$7),"",ROW(Sheet1!$B$2:$B$7)))-1,0,MAX(IF(ISERROR(Sheet1!$B$2:$B$7),"",ROW(Sheet1!$B$2:$B$7)))-MIN(IF(ISERROR(Sheet1!$B$2:$B$7),"",ROW(Sheet1!$B$2:$B$7)))+1,1)) 

系列1:

 =IF(COUNT(Sheet1!$B$2:$B$7)=0,Sheet1!$B$2,OFFSET(Sheet1!$B$1,MIN(IF(ISERROR(Sheet1!$B$2:$B$7),"",ROW(Sheet1!$B$2:$B$7)))-1,0,MAX(IF(ISERROR(Sheet1!$B$2:$B$7),"",ROW(Sheet1!$B$2:$B$7)))-MIN(IF(ISERROR(Sheet1!$B$2:$B$7),"",ROW(Sheet1!$B$2:$B$7)))+1,1)) 

系列2:

 =IF(COUNT(Sheet1!$B$2:$B$7)=0,Sheet1!$C$2,OFFSET(Sheet1!$C$1,MIN(IF(ISERROR(Sheet1!$B$2:$B$7),"",ROW(Sheet1!$B$2:$B$7)))-1,0,MAX(IF(ISERROR(Sheet1!$B$2:$B$7),"",ROW(Sheet1!$B$2:$B$7)))-MIN(IF(ISERROR(Sheet1!$B$2:$B$7),"",ROW(Sheet1!$B$2:$B$7)))+1,1)) 

然后您可以设置您的图表,但是请记住,您需要单独添加/编辑每个系列。 忽略图表数据范围字段:

图表

将每个序列或x轴设置为命名范围时,需要使用对当前工作表或工作簿的引用进行限定。 如果您只是指定范围名称,Excel将不会识别它:

编辑系列

轴标签

将所有内容设置完毕后,“图表数据范围”字段将显示涵盖所有更改数据的合并范围。 不要碰这个领域。 dynamic范围已经设定为系列。 随着您的数据更改,FMS将自动重新计算图表数据范围。

更新范围

乔伊斯,你可以创build一个具有相同维度的另外一组单元格,并在你的偏移量中使用这些单元格。 用于创build另外一组单元格。 select任意一个单元格,然后input下面的公式作为数组公式。 (input下面的公式,然后按shift + enter)。 然后将该单元复制到附加图像中提到的所有其他单元。 然后,您可以将这组新单元格放置在您的偏移量中。 我相信,这将解决您的要求。 无论是连续的还是连续的还是错误的。 如果您使用新的单元格组的偏移量函数,该单元格将只包含非错误数据,并且可以使用该单元格创buildgraphics,并且graphics将根据切片器进行更改。 假设我所做的是,如果是错误的,B列和C列都会有错误值。 所以,它只根据B列中的值进行过滤。

 =IFERROR(INDEX($A$1:$C$10,SMALL(IF(ISERROR($B$2:$B$10),"",ROW($B$2:$B$10)),ROW(A1)),COLUMN(A1)),"") 

在这里输入图像说明