Excel:如何跳过数组中的特定行

Excel:如何跳过数组中的特定行

我正在尝试跳过数组中的特定行,而不是值。

例如,假设我们在 A 列:

0
3
0 <--- Row 3
0

我怎样才能跳过 A1:A4 中的第 3 行,以便 small(A1:A4, 2) 等于 0,而 small(A1:A4, 3) 等于 3。

我想跳过特定行,而不是值。我无法切换行,我需要一个忽略数组中特定行的公式

感谢您的帮助!

答案1

另一种方法是使用INDEX函数创建您希望保留的行的数组(并且有很多方法可以创建此数组)。在您的具体示例中,使用AGGREGATE而不是SMALL

=AGGREGATE(15,4,INDEX($A$1:$A$4,IF(1,N({1,2,4}))),2)

在此处输入图片描述

如果您只有四行并且只想忽略一行,那么方法其实并不重要。如果您的范围较大,并且要忽略的行的选择更复杂(并且不止一行),那么创建要保留的行号数组可能会更简单。

答案2

如果要对数字求和,请使用 SUMPRODUCT:

=SUMPRODUCT((ROW(A1:A4)<>3)*(A1:A4))

如果您要做其他任何事情,那么很可能您将需要一个包含 IF 的数组输入公式:

IF(ROW(A1:A4)<>3,A1:A4)

这将使公式成为一个数组公式,退出编辑模式时需要用 Ctrl-Shift-enter 而不是 Enter 来确认。

例如如果我们想要 MAX:

=MAX(IF(ROW(A1:A4)<>3,A1:A4))

使用 Ctrl-Shift-Enter 输入。

对于小一点的:

=SMALL(IF(ROW(A1:A4)<>3,A1:A4),3)

使用 Ctrl-Shift-Enter 输入3不会返回0

在此处输入图片描述


AGGREGATE 的另一种形式与上面的小形式相同:

=AGGREGATE(15,7,A1:A4/(ROW(A1:A4)<>3),3)

答案3

跳过 A1:A4 中指定的第 3 行

尝试输入这个正常公式:

=SMALL(IF({1;1;0;1},A1:A4),3)

将返回结果3

和,

=SMALL(IF({1;1;0;1},A1:A4),2)

将返回结果0

相关内容