【Excel関数】行番号に依存しない自動採番の方法
自動採番といえば、行に依存したROW関数のみを使った方法が多いようです。
個人的にもっと便利だと思う自動採番の方法があるので、紹介します。
もちろん、行が削除されても問題なく自動採番されます。
自動採番を実現する関数
セルに入力する関数は以下です!
=MAX($A$1:INDIRECT(“A”&ROW() -1))+1
(前提として、A列に自動採番する前提のため、関数には”A”を使用しています。
他の列で使用する場合は列ごとに変更してください。)
これだけでは非常に分かりにくいと思いますので、関数ごとに順番に解説します。
INDIRECT関数
=MAX($A$1:INDIRECT(“A”&ROW() -1))+1 ※赤色の部分です
INDIRECT関数は引数で指定されたセルを参照する関数です。
今回の引数はA列と現在の行番号-1です。
つまり、関数が入力されているセルのひとつ上のセルを参照しています。

関数が入力されているセルが12行目のため、黄色くなっている11行目が参照されています。
MAX関数
=MAX($A$1:INDIRECT(“A”&ROW() -1))+1 ※水色の部分です
MAX関数は引数で指定された範囲の最大を求める関数です。
今回の引数はA1セルと関数が入力されているセルのひとつ上のセル間の範囲です。

オレンジ色になっている範囲がMAX関数の範囲になります。
今回は範囲内に数字がないため、=MAX($A$1:INDIRECT(“A”&ROW() -1))+1 の最後の+1で「1」が表示されています。
関数の処理まとめ
- A1セルから現在のセルのひとつ上のセルまでの範囲を求める
- 求めた範囲内で一番大きな数字を探す
- 一番大きな数字に+1する
- 現在のセルに表示する数字が範囲内の数字より大きな数字になる
A列の適当な行にコピペしてみる

関数をコピペすれば自動採番されていることがわかります。
非常に便利ですね~
※注意※
・上でも書きましたがA列前提の関数のため、他の列に適用したい場合は、適宜”A”の部分を変更してください。
・A1セルに紹介した関数を入力すると、循環が発生してエラーになるため、A1セルに数字を入力したい場合は、数字の1を入力してください。
まとめ
便利なので、私はよくこの自動採番される関数を使用しています。
みなさんもぜひ使ってみてください。
この関数をセルに入力するアドインを追加するとより便利かもしれませんね。