今回の記事では
Excelで一定の間隔で連番を振りたいけどどうやったら振ることが出来るの?
なるべく簡単な方法で自動的に連番を振る方法が知りたい
連番を振る時にグループごとに連番を振る方法ってあるの?
グループが変わるたびに連番を自動で振り直してくれたら助かるのに
こういった疑問に答えます
✔目的に合った連番を自動で振る方法のテーマ
①一定間隔で連番を振るには計算と関数を組み合わせるのが正解です
②グループごとに連番を振るにはCOUNTIF関数を使うのが正解です
この記事を書いているのはOfficeを約20年間活用しながら
ITを活用したエステの経営マネジメントしている私の経験を基に
「目的に合った連番を自動で振る方法のテーマ」に関して実体験に基づいて解説しています
今回の内容を一緒にやりたい場合は▼のファイルをダウンロードして下さい
目次を使って読みたい項目へ
一定間隔で連番を振るには計算と関数を組み合わせるのが正解です
一定の間隔で連番を振るには、行数を元にした計算結果と関数を組み合わせることで自動で表示出来ます
なぜなら、一定間隔で連番を表示させるには一定のルールにそって設定する必要があるからです
それでは、さっそく一定の間隔で連番を振る方法について解説していきます
まず、設定した結果から見てみましょう
こんな風に1行空けて連番を自動で振ることが出来ます
設定してある数式はこんな感じです
かなり複雑そうに見えますが、落ち着いて1つずつ見ていけば理解出来ますよ
では順を追って設定内容を整理しましょう
Step1:MOD関数で割り切れない数字を表示する
まずはMOD関数を使って表示・非表示の目印づくりをします
まず結果はこんな風に「0と1」が表示されるようになります
設定された数式はこんな感じです
まず、「ROW(A1)+1」の部分を切り取ります
ROW関数は指定の行数を表示してくれる関数なので「A1のセルの行数を表示」してくれます
答えは「1」なのでその結果に「1を足す」ということをしています
つまり「1+1=2」というのが答えですね
次は、MOD(モッド)関数で割り切れない数字を表示します
今回の式は「MOD((ROW(A1)+1),2)」ですね
MOD関数の基本的な使い方は「MOD(数値,除数)」です
数値とは「割りたい数字」のことなので今回の場合は「2」になります
次の「除数」とは何の数字で割りますか? という意味なので今回は「2」を指定しています
つまり、今回の式を日本語にすると「MOD(ROW関数の結果を,2で割る)そのあまりの数字を表示してね」という意味になります
その結果、「0と1」が表示されたという訳です
あまりの数字って何?
MOD関数を使うと分かりにくくなるのが「あまりの数字」です
私の様に数学が得意ではない方のために補足で解説します
あまりの数字とは「割り算をした時に残る数字」のことです
では、一度学校の勉強風にあまりの数字を出してみましょう
割り算を縦計算するとこんな風にあまりの数が出ましたよね
コレのことを言っています
これで1つ目の準備が出来ました
Step2:端数を出して1行おきに連番を振る準備
次は計算式を使って1行おきの連番を振る準備をしましょう
こんな風に「1→1.5→2→……」といった具合に「0.5単位」でわざと連番を振ります
理由は、「どのセルでも1から連番を表示するためと、1行おきに連番を表示するため」です
要はセルの場所に左右されずに1行おきで連番を表示する設定ということです
数式の内容は「=(ROW(A1)+1)/2」です
まず、「ROW(A1)」の部分ですが、これは「A1のセル」が何行目か?
という結果を求めるための設定です
ROW関数は指定したセルの行数を表示してくれる関数ですね
A1のセルは1行目なので結果は「1」です
次に「(ROW(A1)+1)」の部分ですが、この部分は「A1のセルに1を足す」ということをしています
結果は「1+1」なので「2」ですね
「()」が付いている理由は最後に「2」で割りたいので足し算を先に計算するために「()」で囲っています
最後の「/2」は「()」内の結果の数を「2で割る」ということをしています
つまり、1行目は「(1+1)÷2=1」となります
2行目は「(2+1)÷2=1.5」といった具合に計算で「整数と端数」を表示するという仕組みが出来上がりました
Step3:条件分岐して連番の表示・非表示を振り分ける
最後に条件を切り分けることで連番の表示と非表示の振り分けをしましょう
最終系の式が「=IF(MOD((ROW(A1)+1),2)=0,(ROW(A1)+1)/2,””)」です
この式を今までの解説と合わせて分かりやすくしてみましょう
Step1の内容を①にStep2の内容を②とします
そうすると
「=IF(①=0,②,“”)となります」
つまり、この式を日本語にすると
「=もし(①の答えが「0」だったら,②の計算結果を表示してね,でなければ空白にしてね)」という意味になります
その結果、あまりの数字が「0」だったら数字を表示して「1」だったら「何も表示しない」という設定になるという訳です
ちょっと難しいですが、こんな風にすれば1行置きの連番を振ることが出来ます
2行や3行置きの連番を振る
1行置きの連番の数字を少し変更することで2行や3行置きの連番を振ることが出来ます
結果はこんな感じです
それぞれの式は
2行置き:「=IF(MOD((ROW(A1)+2),3)=0,(ROW(A1)+2)/3,””)」
3行置き:「=IF(MOD((ROW(B1)+3),4)=0,(ROW(B1)+3)/4,””)」
こんな感じで目立たせた数字を1ずつ足していってあげると実現できます
こんな風にちょっと複雑ですが1行以上置きの連番を振ることが出来ます
繰返しになりますが、一定の間隔で連番を振るには、行数を元にした計算結果と関数を組み合わせることで自動で表示出来ます
グループごとに連番を振るにはCOUNTIF関数を使うのが正解です
グループごとに連番を振るにはCOUNTIF関数を使うのが最適解です
なぜなら、COUNTIF関数は「連番と条件分け」が出来る関数なので目的に一番合っているからです
それでは具体的な方法について解説していきます
こんな風に千葉県~茨城県までのグループに分かれている一覧表を元にします
では、都道府県が変わる度に自動で連番を振る設定をしてみましょう
設定内容はすごく簡単なのでサクッとできますよ
設定内容はコレだけです
まずCOUNTIF関数の基本的な使い方は
「=COUNTIF(範囲,検索条件)」です
今回の設定内容は「=COUNTIF($A$2:A2,A2)」だったので
この式を日本語にすると「=COUNTIF(A2セル~A2セルの範囲で,A2の内容と同じ数を表示してね)」
という意味です
つまり、指定した範囲の中に同じ項目がいくつあるか数えているという訳です
今回のポイントは「$A$2:A2」の範囲指定の部分です
これは、調べたい最初の範囲位置を固定して1行ずつ調べる範囲を広げたところです
範囲の固定と検索のイメージを図解で見てみましょう
最初がこんな感じで範囲内の数を数えて表示しています
次は1行分広い範囲の中から3行目のセルの内容を検索します
答えは「2」ですね
こんな風に調べる範囲は1行ずつ増えていき、調べる項目は1行ずつずれていく
この仕組みを活用するとグループ(同じ名前)が切り替わる度に上手く連番を振ってくれるという訳です
簡単ですが、かなり実用的な方法なのでマスターしてみましょう
繰り返しになりますが、グループごとに連番を振るにはCOUNTIF関数を使うのが最適解です
コメントを残す