※ Microsoft365(旧Office365)Excelの画像を使って解説しています。


ROW関数で自動採番される連番を振る方法
自動採番とは重複しない番号を自動で割り振ることで、データの追加や削除が発生するごとに連番を適正に振り直すという意味です。これはROW関数を使った簡単な数式で実装できます。
- 連番を振る表を「テーブル」に変換する(テーブル化することで、表の最後に行を追加しても自動採番が引き継がれる)
- 連番を表示させる一番上のセルを選択する
- ROW関数の引数を空にした数式を「=ROW()」と入力
- 続けて「-1」と入力
- 「=ROW()-1」の数式をEnterで確定させる
- データのある一番下の行までオートフィルコピーする

=ROW()-1の意味:「=ROW()」と入力すると、そのセルの行番号が取得できます。データは2行目から始まるので「2」と返りますから、「-1」を末尾に入力して「1」になるようにします。
特定の文字列を足してコード番号を自動入力する方法
連続した数字「12345・・・」だけで番号を振るのではなく、例えば、先頭に0を付けて「001」「002」・・・のように表記したり、「A-01」「A-02」・・・のようなコード番号を自動入力する方法です。
Excelでは数値の先頭に0を入力すると自動で省略されます。連番の先頭に0を付けて「001」「002」と表示させるには「セルの書式設定」でユーザー定義の表示形式を「000」と設定します。
数字を特定の文字列に変換するTEXT関数の第1引数「値」に連番を求めるROW関数の数式を指定し、第2引数「表示形式」を「”A-000″」と文字列で指定します。
数式 : =TEXT(ROW()-1,”A-000″)
空白でないセルにだけ連番を振る方法
下図の表は名簿の名前の横に複数の連名を縦に並べてあります。主の名前にだけ連番を振るには、空白でないセルをカウントする「COUNTA関数」をIF関数に入れ子して実装します。

「名前」の列の空白を除外して、名前が入力された行にだけ連番を振ります。
IF関数の引数は以下のようになります。
- 第1引数「論理式」:「名前の一番上のセルが空白でなければ」を指定 B2<>“”
- 第2引数「値が真の場合」:「空白でないセルをカウントする」を指定 COUNTA($B$2:B2)
- 第3引数「値が偽の場合」:「空欄にする」を指定 “”

ポイントはCOUNTA関数の引数に範囲を指定し、最初のセル番地を絶対参照にすることです。下までオートフィルコピーすれば範囲が1つずつ増えていき、カウント数も1つずつ増えます。
