Excelで範囲から奇数行・奇数レコードを取り出す計算式の使い方

Excelで範囲から奇数行を取り出す計算式の使い方

ExcelのCHOOSEROWS関数SEQUENCE関数は、データセットを操作し、特定の条件に基づいてデータを選択する際に非常に強力なツールです。これらの関数を組み合わせることで、特定の範囲から奇数行のみを効率的に取り出すことが可能になります。

以下で実際に作成する計算式の解説をします。

CHOOSEROWSとSEQUENCE関数の基本

CHOOSEROWS関数の概要

CHOOSEROWS関数は、指定された範囲または配列から、特定の行を選択して返す機能を持ちます。この関数の基本的な書式は

=CHOOSEROWS(配列, 行番号1, [行番号2], ...)

です。ここで「配列」はデータを選択する元の範囲を指し、「行番号」は選択する行を指定します。複数の行を指定することも可能で、この関数は指定された行番号に基づいてデータを抽出します。

範囲がA2:E32だとして

=CHOOSEROWS(A2:E32,1,3,5,7,……)

のような計算式を作成すれば奇数レコードの取り出しが可能です。ただし行番号をすべて指定するのは大変なので、次に紹介するSEQUENCE関数と組み合わせる予定です。

これで指定行の取り出しが可能だが、面倒だろう。

SEQUENCE関数の概要

SEQUENCE関数は、指定されたパラメータに基づいて数値のシーケンス(連続する数値のリスト)を生成します。この関数の基本的な書式は

=SEQUENCE(行数, [列数], [開始], [ステップ])

です。ここで「行数」は生成するシーケンスの行数、「列数」は列数、「開始」はシーケンスの開始値、「ステップ」は増加する値の間隔を指します。SEQUENCE関数は、繰り返しやループ処理を行う際に特に便利です。例えば以下のような計算式を作れば1から開始の2飛び数字を10個作成できます。

=SEQUENCE(10,1,1,2)

奇数行の抽出方法(データ範囲を自分で指定)

CHOOSEROWS関数SEQUENCE関数を組み合わせることで、特定の範囲から奇数行のみを選択することができます。SEQUENCE関数で生成された奇数のインデックスをCHOOSEROWS関数の「行番号」に渡すことにより、元のデータセットから奇数行のみを抽出することが可能になります。

1~19行目までの奇数10行分なら以下のような式になります。

=CHOOSEROWS(範囲, SEQUENCE(10,1,1,2))

ただし、この方法だと取得する行の数を自分で指定する必要があります(今回は10行取り出しとした)。以下は誤りの例です。取得可能な数字以上の行番号を指定することはできません。

=CHOOSEROWS(範囲, SEQUENCE(10000,1,1,2))

奇数行のみを抽出する計算式(データ範囲考慮)

次に、範囲の大きさから取得可能な行数を計算させる式をご紹介します。

式の説明の前に完成例をご覧いただきます。奇数行のみを抽出するには、以下の計算式を使用します。

=CHOOSEROWS(範囲, SEQUENCE((ROWS(範囲) + 1) / 2, 1, 1, 2))

この計算式では、SEQUENCE関数が奇数行のインデックスを生成し、CHOOSEROWS関数がこれらの行を指定された範囲から取り出します。式の意味は次のセクションを確認してください。

計算式の論理

この計算式の論理は次のようになります。まず、SEQUENCE関数はシーケンス、すなわち連続する数値のリストを生成します。この場合、(ROWS(範囲) + 1) / 2 という式は、指定範囲の行数を2で割って1を加えることで、必要な奇数行の数を算出します。

ROWS関数は範囲内の行数を数える関数です。

SEQUENCE関数は、1から始まる数値のシーケンスをこの行数に合わせて生成し、各数値の間隔(ステップ)は2に設定されています。これにより、1, 3, 5, 7…といった奇数のインデックスが作成されます。

次に、CHOOSEROWS関数は、これらのインデックスに基づいて、元の範囲から対応する奇数行のみを抽出します。この計算式により、たとえ範囲の行数が偶数であっても、適切な数の奇数行が取り出されます。範囲がA2:E32ならば以下のような式になります。

=CHOOSEROWS(A2:E32,SEQUENCE((ROWS(A2:E32)+1)/2,1,1,2))

テーブルを用いてデータ範囲を自動で拡張させる奇数行の取得式

さらに分析元を「テーブル」としておくと自動で範囲を拡張させる式にすることができます。式は次の通りです。

=CHOOSEROWS(テーブル名, SEQUENCE((ROWS(テーブル名) + 1) / 2, 1, 1, 2))

です。テーブル名を「テーブル山」にすれば以下の式になります。

=CHOOSEROWS(テーブル山,SEQUENCE((ROWS(テーブル山)+1)/2,1,1,2))

テーブルの場合はレコード数を拡張すれば連れて範囲も自動拡張します。

まとめ

ExcelのCHOOSEROWS関数SEQUENCE関数を組み合わせることで、範囲から奇数行のみを簡単かつ効率的に抽出することができます。この技術を活用して、データ分析をより柔軟に、効果的に行いましょう。

その他の特定行抽出

奇数行の取出し以外でも、計算式を加工すれば実現が可能です。以下にそれらの計算式を解説しているページを紹介します。

偶数行を取り出す計算式

Excelで範囲から偶数行・偶数レコードを取り出す計算式の使い方
Excelで範囲から偶数行を取り出す計算式の使い方Excelのデータ分析では、特定の条件に合ったデータ行を効率的に抽出することが重要です。この記事では、CHOOSEROWS関数とSEQUENCE関数を組み合わせて、指定された範囲から偶数行の...

コメント