doodle-on-web

自分で調べたことや、仕事の中で質問されたことなどをまとめています。

エクセルで奇数行・偶数行だけ抽出【MOD関数で1行おきに仕分け】

スポンサーリンク

たった1つの関数で「1行おき」を仕分けできる

エクセルで表を作っていると、「1行おきにデータを取り出したい」「偶数行だけ、奇数行だけを別に集計したい」という場面があります。結論から言うと、=MOD(ROW(),2) という1つの式を使うだけで、偶数行と奇数行をきれいに振り分けられます。

たとえば、上下2行で1セットになっているデータを2つに分けたい、交互に入力された2種類の記録を仕分けしたい、といったケースです。一つずつ手で選ぶのは現実的ではなく、行数が増えるほどミスも起きやすくなります。この記事では、その具体的な手順と仕組みを、2026年7月時点の情報でわかりやすく解説します。

なお、この方法が判定するのは「ワークシート上の行番号が奇数か偶数か」です。「データの1件目・2件目」とは必ずしも一致しない点だけ、先に頭の片隅に置いておいてください(後半で調整方法も紹介します)。

エクセルの偶数行・奇数行を抽出したい表の例

ここでは、データがA列に入っている表を例に進めます。

手順:MOD関数で偶数・奇数を判定する

1. 判定用の列を追加する

データの隣、ここでは B列 に判定用の列を1つ追加し、見出しを「偶数・奇数」とします。

2. MOD関数を入力する

B列の先頭セルに、次の式を入力します。

MOD関数を入力したセルの例

=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以降 FILTERISODD/ISEVEN

まとめ

エクセルで奇数行・偶数行を抽出するポイントを整理します。

  • 基本は =MOD(ROW(),2)。判定列を1つ追加し、奇数行に1・偶数行に0を振り分けるのが最もシンプルで確実です。
  • 仕組みはROW×MOD。行番号を2で割った余りで奇数か偶数かを判定します。
  • ソートかフィルターで抽出。順序を保ちたいならフィルターが便利です。
  • ズレに注意。ROWはシートの行番号を返すため、必要なら ROW()-開始行 で調整します。
  • 新しいExcelならFILTER関数。複数列をまとめて、作業列なしで一発抽出できます。

1行おきのデータ整理に困ったら、まずは MOD(ROW(),2) を思い出してください。


あわせてチェック