Excelで商品番号や受付番号、管理番号などを入力していると、

「前回どこまで番号を付けた?」
「最後の番号を確認して+1するのが面倒」
「次の番号を自動で表示したい」
ということがあります。
たとえば、A列に
1001
1002
1003
と番号が入力されている場合、次に使う番号は「1004」です。
このような場合は、ExcelのMAX関数を使って「入力済みの最大番号+1」を求めると簡単です。
Excelで最後の番号に+1する基本の数式
A列に管理番号が入力されている場合は、次の数式を使います。
=MAX(A:A)+1MAX関数は、指定した範囲の中から最も大きい数値を取得する関数です。
A列が、
1001
1002
1003
となっていれば、
=MAX(A:A)+1の結果は、1004になります。
つまり、入力済みの最大番号を取得 → 1を足すという仕組みです。

注意:この数式は番号列とは別のセルに入力する
=MAX(A:A)+1をA列自身に入力すると、数式が自分自身を含むA列全体を参照するため、循環参照になります。
そのため、この数式は「次に使う番号を別セルへ表示したい」ときに使うのが簡単です。

番号列へ自動で連番を付けたい場合
A列そのものへ番号を自動入力したい場合は、現在のセルより1つ上までの範囲を参照します。
たとえばA1が見出しで、A2から番号を付ける場合は、
=MAX(1000,$A$1:A1)+1と入力します。
これを下方向へコピーすると、
1001
1002
1003
1004
というように番号が増えていきます。1000を指定しているのは、最初の番号を「1001」から始めるためです。

5001から始めたい場合は、
=MAX(5000,$A$1:A1)+1のように変更できます。
👉Excelで「何をしたいときに、どの関数を使えばいいのか分からない」という場合は、こちらの記事も参考になります。
ROW関数で連番を付ける方法との違い
Excelで連番を付ける方法としては、ROW関数を使う方法もあります。
たとえばA2から「1001」と表示したい場合は、
=ROW()+999と入力すると、A2では1001、A3では1002、A4では1003……と連番を付けられます。
ただし、ROW関数はセルの行番号をもとに番号を作る方法です。
一方、今回紹介しているMAX関数は、すでに入力されている最大番号を確認して、その番号に+1する方法です。
そのため、
・行の位置に合わせて単純な連番を付けたい → ROW関数
・今まで使った番号の続きから採番したい → MAX関数
というように使い分けると分かりやすいでしょう。
データを入力した行だけ番号を自動で付ける
商品名などが入力された行だけ番号を付けたい場合は、IF関数と組み合わせると便利です。
たとえば、
・A列:管理番号
・B列:商品名
という表の場合、A2に次の数式を入力します。
=IF(B2="","",MAX(1000,$A$1:A1)+1)この数式では、B列が空白なら管理番号も空白のままになります。
B列へ商品名を入力すると、
1001
1002
1003……
と順番に番号が表示されます。
この方法なら、商品名などのデータを入力した行だけ番号を表示できます。
ただし、数式で作成した番号はあとから変わる可能性があるため、一度発行した番号を固定して管理したい場合は、後述する注意点も確認してください。

👉数式を下までコピーしたいのに、セル右下の十字マークが表示されない場合はこちらも参考になります。
「最後の番号」と「最大番号」は厳密には違う
今回紹介したMAX関数で取得しているのは、厳密には一番下にある番号ではなく、最も大きい番号です。
たとえばA列が、
1001
1005
1003
となっている場合、
=MAX(A:A)+1の結果は「1006」になります。
一番下の「1003+1」である1004にはなりません。
商品番号や管理番号のように、番号が1001、1002、1003……と増えていくデータであれば、MAX関数で問題ありません。
「一番下に入力されているセルの値」を取得したい場合は、別の方法が必要です。
管理番号を数式で付けるときの注意点
MAX関数を使った方法は手軽ですが、数式で作られた番号は、行の追加・削除・並べ替えなどによって参照する範囲が変わり、番号が変化する可能性があります。
そのため、
・商品の管理番号
・受付番号
・請求番号
・一度発行したら変更してはいけない番号
など、あとから番号が変わってはいけない用途では注意が必要です。
番号が確定したら、必要に応じてコピーして「値として貼り付け」、数値として固定しておくと安心です。
まとめ
Excelで最後の番号を確認して+1したい場合は、MAX関数を使うと簡単です。
次の番号を別セルに表示するなら、
=MAX(A:A)+1管理番号を1001から自動採番するなら、
=MAX(1000,$A$1:A1)+1データが入力された行だけ番号を付けるなら、
=IF(B2="","",MAX(1000,$A$1:A1)+1)と使い分けると便利です。
単純なオートフィルとは違い、すでに入力されている番号を確認して「次の番号」を作れるため、商品番号・受付番号・管理番号などを入力する手間を減らせます。
👉複雑な条件を含む数式を自分で組み立てるのが難しい場合は、Excel Copilotへ文章で数式を作ってもらう方法もあります。




コメント