我在 Excel 中有一个公式,用于检查某个范围并仅返回包含的单元格Monday
。
但是,范围内的某些单元格有一个#N/A
,这导致我的公式中断。
如果我删除它们,它就会再次完美运行,但我不想不断地检查,N/A'
所以有什么方法可以防止它们影响我的公式吗?
=IFERROR(INDEX(A$2:A$1000,SMALL(IF($D$2:$D$1000 = "Monday", ROW(A$2:A$1000)-ROW(A$2)+1),ROWS(A$2:A2))),"")
这是我的公式,以防万一它与此有关。我注意到,只有当 If 语句遇到带有 的单元格时,它才会中断N/A
。
例如,如果单元格中有一个A500
,我可以将索引范围保持到1000
,但必须将 If 语句中的范围更改为在 499 处结束。
答案1
您需要将错误检查放入使用数组的部分中,您将在其中找到错误。
在您的示例中,D 列返回错误,并且该错误在SMALL
公式的一部分中使用,
因此将的数组部分包装SMALL
成IFERROR
,并且返回一个大数字而不是“”,因为您只寻找小数字,即 9999999 将大于范围 A2:A1000 中的任何行。
希望这是有意义的,无论如何,请参见下面的结果:
{=IFERROR((INDEX(A$2:A$1000,SMALL(IFERROR(IF($D$2:$D$1000="Monday",ROW(A$2:A$1000)-ROW(A$2)+1),999999999),ROWS(A$2:A2)),1)),"")}