Excel 动态范围偏移公式排除#n/a
Excel dynamic range offset formula exclude #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 Feb/Mar/Apr 行。但是如果数据因为我点击不同的过滤器而改变(下面的例子),我希望它仍然 select 只有非错误数据(Jan/Feb/Mar/Apr 行):
|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|
请帮忙!谢谢。
偏移函数只能select 一个单元格区域,但这应该仍然适合您的需要。沿 x 轴带有月份的图表应包括所有月份,即使没有值也是如此。 offset 函数只会使图表从最早的月份开始,并在最近的月份结束。中间没有值的任何月份将不会在图表上绘制任何内容。
要在图表中使用命名范围,您必须为每个单独的系列命名。您不能对整个图表源数据范围使用动态范围。
定义以下三个命名范围以供您的图表使用。 A、B 和 C 列各有一个命名范围。每个命名范围查看 B 列以确定要包括哪些行:
月数:
=IF(COUNT(Sheet1!$B:$B)=0,Sheet1!$A,OFFSET(Sheet1!$A,MIN(IF(ISERROR(Sheet1!$B:$B),"",ROW(Sheet1!$B:$B)))-1,0,MAX(IF(ISERROR(Sheet1!$B:$B),"",ROW(Sheet1!$B:$B)))-MIN(IF(ISERROR(Sheet1!$B:$B),"",ROW(Sheet1!$B:$B)))+1,1))
系列 1:
=IF(COUNT(Sheet1!$B:$B)=0,Sheet1!$B,OFFSET(Sheet1!$B,MIN(IF(ISERROR(Sheet1!$B:$B),"",ROW(Sheet1!$B:$B)))-1,0,MAX(IF(ISERROR(Sheet1!$B:$B),"",ROW(Sheet1!$B:$B)))-MIN(IF(ISERROR(Sheet1!$B:$B),"",ROW(Sheet1!$B:$B)))+1,1))
系列 2:
=IF(COUNT(Sheet1!$B:$B)=0,Sheet1!$C,OFFSET(Sheet1!$C,MIN(IF(ISERROR(Sheet1!$B:$B),"",ROW(Sheet1!$B:$B)))-1,0,MAX(IF(ISERROR(Sheet1!$B:$B),"",ROW(Sheet1!$B:$B)))-MIN(IF(ISERROR(Sheet1!$B:$B),"",ROW(Sheet1!$B:$B)))+1,1))
然后您可以设置图表,但请记住您需要单独 add/edit 每个系列。忽略图表数据范围字段:
当您将每个系列或 x 轴设置为命名范围时,您需要使用对当前工作表或工作簿的引用来限定它。如果您只指定范围名称,Excel 将无法识别它:
设置完所有内容后,“图表数据范围”字段将显示涵盖所有更改数据的合并范围。请勿触摸此字段。已为该系列设置动态范围。当您的数据发生变化时,FMS 将自动重新计算图表数据范围。
Joyce,您可以创建一组额外的具有相同维度的单元格,并在您的偏移量中使用这些单元格。用于创建额外的一组单元格。选择任何一个单元格并输入以下公式作为数组公式。 (输入以下公式,然后按 shift + enter)。然后将该单元格复制到所附图像中提到的所有其他单元格。然后,您可以将新的一组单元格作为偏移量的基础。我相信,这将满足您的要求。无论是行还是连续的还是中间有错误。如果你使用新的一组单元格的偏移函数,它只会有 non-error 数据,你可以使用它制作图表,图表将根据切片器而变化。我所做的唯一假设是,如果错误,B 列和 C 列都将具有错误值。因此,它仅根据 B 列中的值进行过滤。
=IFERROR(INDEX($A:$C,SMALL(IF(ISERROR($B:$B),"",ROW($B:$B)),ROW(A1)),COLUMN(A1)),"")
我的数据根据切片器而变化,我无法找出正确的偏移公式 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 Feb/Mar/Apr 行。但是如果数据因为我点击不同的过滤器而改变(下面的例子),我希望它仍然 select 只有非错误数据(Jan/Feb/Mar/Apr 行):
|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|
请帮忙!谢谢。
偏移函数只能select 一个单元格区域,但这应该仍然适合您的需要。沿 x 轴带有月份的图表应包括所有月份,即使没有值也是如此。 offset 函数只会使图表从最早的月份开始,并在最近的月份结束。中间没有值的任何月份将不会在图表上绘制任何内容。
要在图表中使用命名范围,您必须为每个单独的系列命名。您不能对整个图表源数据范围使用动态范围。
定义以下三个命名范围以供您的图表使用。 A、B 和 C 列各有一个命名范围。每个命名范围查看 B 列以确定要包括哪些行:
月数:
=IF(COUNT(Sheet1!$B:$B)=0,Sheet1!$A,OFFSET(Sheet1!$A,MIN(IF(ISERROR(Sheet1!$B:$B),"",ROW(Sheet1!$B:$B)))-1,0,MAX(IF(ISERROR(Sheet1!$B:$B),"",ROW(Sheet1!$B:$B)))-MIN(IF(ISERROR(Sheet1!$B:$B),"",ROW(Sheet1!$B:$B)))+1,1))
系列 1:
=IF(COUNT(Sheet1!$B:$B)=0,Sheet1!$B,OFFSET(Sheet1!$B,MIN(IF(ISERROR(Sheet1!$B:$B),"",ROW(Sheet1!$B:$B)))-1,0,MAX(IF(ISERROR(Sheet1!$B:$B),"",ROW(Sheet1!$B:$B)))-MIN(IF(ISERROR(Sheet1!$B:$B),"",ROW(Sheet1!$B:$B)))+1,1))
系列 2:
=IF(COUNT(Sheet1!$B:$B)=0,Sheet1!$C,OFFSET(Sheet1!$C,MIN(IF(ISERROR(Sheet1!$B:$B),"",ROW(Sheet1!$B:$B)))-1,0,MAX(IF(ISERROR(Sheet1!$B:$B),"",ROW(Sheet1!$B:$B)))-MIN(IF(ISERROR(Sheet1!$B:$B),"",ROW(Sheet1!$B:$B)))+1,1))
然后您可以设置图表,但请记住您需要单独 add/edit 每个系列。忽略图表数据范围字段:
当您将每个系列或 x 轴设置为命名范围时,您需要使用对当前工作表或工作簿的引用来限定它。如果您只指定范围名称,Excel 将无法识别它:
设置完所有内容后,“图表数据范围”字段将显示涵盖所有更改数据的合并范围。请勿触摸此字段。已为该系列设置动态范围。当您的数据发生变化时,FMS 将自动重新计算图表数据范围。
Joyce,您可以创建一组额外的具有相同维度的单元格,并在您的偏移量中使用这些单元格。用于创建额外的一组单元格。选择任何一个单元格并输入以下公式作为数组公式。 (输入以下公式,然后按 shift + enter)。然后将该单元格复制到所附图像中提到的所有其他单元格。然后,您可以将新的一组单元格作为偏移量的基础。我相信,这将满足您的要求。无论是行还是连续的还是中间有错误。如果你使用新的一组单元格的偏移函数,它只会有 non-error 数据,你可以使用它制作图表,图表将根据切片器而变化。我所做的唯一假设是,如果错误,B 列和 C 列都将具有错误值。因此,它仅根据 B 列中的值进行过滤。
=IFERROR(INDEX($A:$C,SMALL(IF(ISERROR($B:$B),"",ROW($B:$B)),ROW(A1)),COLUMN(A1)),"")