Excelで〇行おき、n行おきにデータを抽出する計算式

Excelで〇行おき、n行おきにデータを抽出する計算式

Excelでは、大量のデータから特定のパターンに基づいてデータを抽出することがよくあります。ここでは〇行おき、n行おきにデータを抽出する方法を解説します。2行おき、3行おき、4行おき……、といった取り出しができるようになります。この方法は、ROWS関数FILTER関数SEQUENCE関数MOD関数を組み合わせて実現します。

この計算式では「範囲(配列)」と「n(ステップ数)」のみの指定で抽出が完了します。

数式の構造

n行おき抽出の基本式

基本式は以下の通りとなります。

=FILTER(配列,MOD(SEQUENCE(ROWS(配列)),ステップ数)=1)

引数「配列」の出現を1度にする場合は以下の式となります。

=LET(_Range,配列,_Step,ステップ数,FILTER(_Range,MOD(SEQUENCE(ROWS(_Range)),_Step)=1))

具体例をみましょう。範囲・配列を「A2:B25」、4ステップごとに行を抽出する場合は以下のいずれかの式となります。

=FILTER(A2:B25, MOD(SEQUENCE(ROWS(A2:B25)), 4) = 1)
=LET(_Range,A2:B25,_Step,4,FILTER(_Range,MOD(SEQUENCE(ROWS(_Range)),_Step)=1))
Excelでn行おきにデータを抽出する計算式。範囲とステップ数を指定すれば使える。

Excelでn行おきにデータを抽出する計算式。範囲とステップ数を指定すれば使える。

練習用サンプル表

年度四半期売上
200836600
31100
22100
34800
200929000
45600
14500
27200
201039100
23500
37000
27500
201127800
14400
37600
9100
201221200
15000
36800
29800
201344700
48000
11300
39600

具体例からの数式解説・4行おきに抽出する

=FILTER(A2:B25, MOD(SEQUENCE(ROWS(A2:B25)), 4) = 1)

この数式の構造を順に解説していきます。

データ範囲の指定

A2:B25は、抽出対象のデータ範囲です。この範囲内のレコードから抽出を行います。

抽出ステップ数の指定

数式内の4は、抽出する行のステップ数を指定しています。この例では4行おきにデータを抽出します。

ROWS関数

ROWS(A2:B25)

データ範囲の高さをROWS関数で調べます。この範囲は24行の高さです。

SEQUENCE関数

SEQUENCE(ROWS(A2:B25))

SEQUENCE関数は、データ範囲の行数に基づいて連続した数値の配列を生成します。例えば、範囲が24行の場合、{1, 2, 3, ..., 24}という配列を生成します。

MOD関数

MOD(SEQUENCE(ROWS(A2:B25)), 4)

MOD関数は、SEQUENCE関数で生成された配列の各要素を4で割った余りを計算します。これにより、4行ごとの行番号を特定できます。結果として{1, 2, 3, 0, 1, 2, 3, 0, ...}という配列が生成されます。

FILTER関数(完成)

=FILTER(A2:B25, MOD(SEQUENCE(ROWS(A2:B25)), 4) = 1)

FILTER関数は、指定された条件に一致するデータを抽出します。どのような条件とするかは、引数「含む」へセットします。上記の例では引数「含む」へMOD(SEQUENCE(ROWS(A2:B25)), 4) = 1という条件をセットし、一致する行を抽出します。これは、余りが1の行(各ステップの先頭)を意味します。

この方法により、指定された範囲から任意のステップ数おきにレコードを抽出できます。簡潔で読みやすい数式を使用することで、データの抽出を効率的に行うことができます。

コメント