たった1つの関数で「1行おき」を仕分けできる
エクセルで表を作っていると、「1行おきにデータを取り出したい」「偶数行だけ、奇数行だけを別に集計したい」という場面があります。結論から言うと、=MOD(ROW(),2) という1つの式を使うだけで、偶数行と奇数行をきれいに振り分けられます。
たとえば、上下2行で1セットになっているデータを2つに分けたい、交互に入力された2種類の記録を仕分けしたい、といったケースです。一つずつ手で選ぶのは現実的ではなく、行数が増えるほどミスも起きやすくなります。この記事では、その具体的な手順と仕組みを、2026年7月時点の情報でわかりやすく解説します。
なお、この方法が判定するのは「ワークシート上の行番号が奇数か偶数か」です。「データの1件目・2件目」とは必ずしも一致しない点だけ、先に頭の片隅に置いておいてください(後半で調整方法も紹介します)。
ここでは、データがA列に入っている表を例に進めます。
手順:MOD関数で偶数・奇数を判定する
1. 判定用の列を追加する
データの隣、ここでは B列 に判定用の列を1つ追加し、見出しを「偶数・奇数」とします。
2. MOD関数を入力する
B列の先頭セルに、次の式を入力します。
=MOD(ROW(),2)
あとは、この式を下方向へコピーして、対象の行すべてに反映させます。
3. 判定結果で抽出・ソートする
各行に 1(奇数行) または 0(偶数行) が表示されます。
ここから抽出する方法は2通りです。
- 並べ替え派:B列のセルを選び、「データ」タブ→「並べ替え」で昇順にすれば、0(偶数行)と1(奇数行)が上下にまとまります。
- フィルター派:表を選んで「データ」タブ→「フィルター」を有効にし、B列のフィルターボタンから「1だけ」または「0だけ」にチェックを入れて絞り込みます。並べ替えずに元の順序を保てるのが利点です。
なぜこれで判定できるのか
仕組みはシンプルです。
- ROW関数 は、そのセルがある行番号を返します。B3セルにこの式があれば、ROW()の結果は3です。
- MOD関数 は割り算の余りを返します。
MOD(数値, 2)は2で割った余りなので、奇数なら1、偶数なら0になります。
この2つを組み合わせた =MOD(ROW(),2) は、「今いる行番号が奇数か偶数か」を1と0で表してくれるわけです。
注意点:ROWは「シートの行番号」を返す
気をつけたいのは、ROW関数が返すのがシート上の実際の行番号だという点です。表が1行目から始まっているとは限らないため、「データの1件目・2件目」と「シートの偶数・奇数」がずれることがあります。
具体例で見てみましょう。1行目が見出しで、データが2行目から始まっている場合です。
| シートの行 | 内容 | MOD(ROW(),2) |
|---|---|---|
| 2行目 | データ1件目 | 0 |
| 3行目 | データ2件目 | 1 |
このように、データの1件目が「0(偶数)」と判定されます。「データの1件目を1にしたい」なら、開始行のぶんを引いて調整します。データが2行目から始まるなら、次の式です。
=MOD(ROW()-1,2)
MOD(2-1,2)=1 となり、データ1件目が1、2件目が0になります。「1行おき」で仕分けたいときは、この開始行の調整を押さえておくと確実です。
もっと便利に:新しい関数を使う方法
Microsoft 365 や Excel 2021 以降なら、判定と抽出を1つの式でまとめられます。作業列を残したくないときに便利です。
- ISODD / ISEVEN … 奇数か偶数かを TRUE / FALSE で返します。
=ISODD(ROW())のように使います。 - FILTER関数 … 条件に合う行だけを自動で抜き出します。氏名がA列、点数がC列まである表で奇数行だけを取り出すなら、範囲を複数列で指定できます。
=FILTER(A2:C100, ISODD(ROW(A2:C100)))
これなら、対象の複数列がまるごと別の場所に抽出されます。冒頭で挙げた「上下2行で1セットのデータを2つに分けたい」というケースも、この式で片方を、ISEVEN に変えてもう片方を、と一発で仕分けできます。
どのExcelで何を使うか(早見表)
| 環境 | おすすめの方法 |
|---|---|
| Excel 2019以前・全バージョン共通 | 作業列+=MOD(ROW(),2) |
| Microsoft 365・Excel 2021以降 | FILTER+ISODD/ISEVEN |
まとめ
エクセルで奇数行・偶数行を抽出するポイントを整理します。
- 基本は
=MOD(ROW(),2)。判定列を1つ追加し、奇数行に1・偶数行に0を振り分けるのが最もシンプルで確実です。 - 仕組みはROW×MOD。行番号を2で割った余りで奇数か偶数かを判定します。
- ソートかフィルターで抽出。順序を保ちたいならフィルターが便利です。
- ズレに注意。ROWはシートの行番号を返すため、必要なら
ROW()-開始行で調整します。 - 新しいExcelならFILTER関数。複数列をまとめて、作業列なしで一発抽出できます。
1行おきのデータ整理に困ったら、まずは MOD(ROW(),2) を思い出してください。