Excel: 配列内の特定の行をスキップする方法

Excel: 配列内の特定の行をスキップする方法

値ではなく、配列内の特定の行をスキップしようとしています。

たとえば、A 列にいると仮定します。

0
3
0 <--- Row 3
0

A1:A4 の 3 行目をスキップして、small(A1:A4, 2) を 0 に、small(A1:A4, 3) を 3 にするにはどうすればよいでしょうか。

値ではなく特定の行をスキップしたいのですが、行を切り替えることはできません。配列内の特定の行を無視する数式が必要です。

ご協力ありがとうございました!

答え1

INDEXもう 1 つのアプローチは、関数を使用して保持したい行の配列を作成することです(この配列を作成する方法はたくさんあります)。特定の例では、AGGREGATEの代わりにを使用しますSMALL

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

ここに画像の説明を入力してください

行が 4 行だけあり、そのうち 1 行だけを無視したい場合、アプローチはそれほど重要ではありません。範囲が大きく、無視する行の選択がより複雑 (1 行だけではない) な場合は、保持する行番号の配列を作成する方が簡単な場合があります。

答え2

数値を合計する場合は、SUMPRODUCT を使用します。

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

他に何かを行う場合は、おそらく、内部に IF を含む配列入力式が必要になります。

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

これにより、数式は配列数式になり、編集モードを終了するときに Enter キーではなく Ctrl + Shift + 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で入力すると30

ここに画像の説明を入力してください


上記の小さいものと同じ 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

関連情報