当サイトでは、Excelに連番を振る基本的な方法について、記事で紹介したことがありますが、データシートの状態によっては、1行おきに飛び飛びで連番を付与したいケースもあるでしょう。
もちろん、データの構造は「1行1情報」というように整理されていたほうが圧倒的に使いやすいのですが、会社や他社が作成したExcelであれば、そのような場面に出会ってしまうこともあるのです。
この記事では、Excelの関数を組み合わせて1行おきに飛び飛びで連番を振る方法を紹介します。
この章では、Excelのデータシートで1行おきに飛び飛びで連番を振る関数の使い方を紹介します。
なお、飛び飛びという表現から、不規則なイメージを持つかもしれませんが、データ構造は必ず「1行おきに」並んでいることが条件です。その規則性が守られていないとこの章で紹介する関数では対応できません。
なお、紹介する関数は、偶数行か奇数行かの判定結果に基づいて連番を振ります。そのため、連番を振る行が偶数か奇数かによって、数式は異なってきます。
数式
<偶数行へ連番を振る>
=IF(MOD(ROW(),2)=0,最初の連番セル+1,””)
例:=IF(MOD(ROW(),2)=0,A3+1,””)
<奇数行へ連番を振る>
=IF(MOD(ROW(),2)=1,最初の連番セル+1,””)
例:=IF(MOD(ROW(),2)=1,A3+1,””)
このように、1行おきに飛び飛びで連番を振るには、少し難しい数式を使います。要点を絞って説明すると、数式内で使われている[MOD]は割り算の余りを算出する関数です。
上記の数式では、行数を2で割り算しています(オレンジの2の箇所)。どのような数値でも、2で割り算した場合、偶数であれば余りは必ず0になり、奇数であれば必ず1になります。
そのため、偶数行の場合は余りが0なら連番を振る、奇数行の場合は余りが1なら連番を振る、というのが上記数式の解釈です。
今回の記事で使うサンプルのExcelシートです。下記のようにある年の甲子園出場校が列挙されているデータシートですが、地区と高校名が交互に入力されています。
このデータシートで、オートフィルなどを使って連番を振ってしまうと、地区に対しても付番されてしまい、意味を成さない連番になってしまいます。
ただし、データの構造としては[地区-高校名-地区-高校名]と規則的に並んでいることが分かります。このようなデータシートであれば、関数を組み合わせて1行おきに飛び飛びで連番を振ることができます。
なお、連番は高校名に対して振りたいので、今回のサンプルでは「奇数行へ連番を振る」パターンとなります。
今回は、Excelで1行おきに飛び飛びで連番を振る関数の組み合わせを紹介しました。
数式自体は、関数の複合系で少し難しいのですが、完全に理解しなくてもよいかと思います。偶数と奇数の判定で連番が振られていることだけ分かれば、他のデータシートへ応用することもできるはずです。
単体の関数だけではなく、複数の関数を順番よく組み合わせれば、色々なニーズに対応できるのですね。