表に「1, 2, 3…」と番号を振りたいとき、1つずつ入力していては手間がかかります。連番は、機能と関数を使えば自動で振れます。
この記事では、オートフィルでの入力、行を削除しても崩れないROW関数、絞り込んだ行だけに番号を振るSUBTOTAL関数を説明します。
オートフィルで連番を入力する
いちばん手軽な方法です。最初の2つの番号を入力して、ドラッグします。
手順1|1つ目のセルに「1」、その下のセルに「2」を入力する

手順2|2つのセルを選び、右下の緑色の■(フィルハンドル)を下へドラッグする

1つ目のセルだけに「1」と入力してドラッグした場合は、右下に出る「オートフィルオプション」で「連続データ」を選ぶと、連番になります。
ROW関数で、行を削除しても崩れない連番を振る
オートフィルで入力した番号は、途中の行を削除すると、番号が飛んでしまいます。ROW関数を使うと、行が変わっても自動で振り直されます。

途中の行を削除しても、残った行の番号が自動で詰められます。
絞り込んだ行だけに連番を振る
フィルターで絞り込むと、非表示の行も番号に含まれてしまいます。表示されている行だけに連番を振るには、SUBTOTAL関数を使います。
=SUBTOTAL(103,$B$2:B2)
この式は、B2から現在の行までの範囲で、表示されているセルの個数を数えます。範囲の最初だけを「$」で固定するのがポイントです。フィルターで絞り込むと、見えている行だけが1から順に番号が振られます。
| 方法 | 行を削除したとき | 絞り込んだとき |
|---|---|---|
| オートフィル(値) | 番号が飛ぶ | 非表示の行も含めて番号が残る |
| ROW関数 | 自動で詰まる | 非表示の行も含めて番号が残る |
| SUBTOTAL関数 | 自動で詰まる | 表示されている行だけ振り直される |
うまくいかないときの確認ポイント
- ドラッグしても全部「1」になる:連続データになっていません。オートフィルオプションで「連続データ」を選びます
- 0から始まってしまう:ROW関数の「-1」の数を、見出し行の数に合わせます
- SUBTOTALの結果が0:数える列に空白が含まれていないか確認します(103は空白を数えません)
- 数式が「文字」として表示される:セルの表示形式が「文字列」になっていないか確認します
もう一歩進める|用途に合わせた連番の振り方
連番は、使う場面によって、より便利な方法があります。いくつかの応用的な振り方を紹介します。
SEQUENCE関数でまとめて振る
Microsoft 365やExcel 2021では、SEQUENCE関数で連番を一度に作れます。
=SEQUENCE(100)
これで1から100までの連番が縦に並びます。開始の数字や、増える間隔も指定できます。
グループごとに連番をふり直す
部署ごとに1から番号を振りたいときは、COUNTIF関数を使います。
=COUNTIF($A$2:A2,A2)
範囲の終わりだけ相対参照にしておくのがポイントです。下にコピーすると、同じ値が何回目に出てきたかが数えられます。
「No.001」のような形にそろえる
桁数をそろえた番号は、TEXT関数で作れます。
="No."&TEXT(ROW()-1,"000")
表をテーブルにして自動で振る
テーブルの中で「=ROW()-ROW(テーブル名[#見出し])」のような式を使うと、行を追加しても連番が自動で続きます。
連番がずれたときの直し方
行を並べ替えたり削除したりしたあとで、連番がとびとびになってしまうことがあります。そのときは、ROW関数を使った連番に変えるか、いったん連番の列を消して、振り直しましょう。
- 手で入力した連番は、行を削除すると欠番になる
- ROW関数の連番は、行を削除しても自動で詰まる
- 並べ替えのあとも順番を保ちたいなら、ROW関数ではなく、値として固定した連番を使う
用途によって、「詰まってほしい番号」と「固定したい番号」は違います。請求書番号のように固定したい番号は、値のままにしておくのが基本です。
連番を使った並べ替えとフィルターのコツ
連番は、並べ替えやフィルターをしたあとで、元の順番に戻したいときにも役立ちます。データの一番左に連番の列を作っておくと、どんな並べ替えをしても、連番の列を昇順に並べ替えるだけで、元の並びに戻せます。
この目的で使う連番は、行を並べ替えても変わらないように、ROW関数ではなく、値として入力しておきましょう。作業用の連番であれば、作業が終わったあとで列ごと削除しても構いません。
- 元の並びに戻したい:値の連番
- 行の削除に合わせて詰めたい:ROW関数の連番
- 絞り込んだ結果に番号を振りたい:SUBTOTAL関数を使った連番
まとめ
- 最初の2つの番号を入力して、フィルハンドルをドラッグすれば連番になる
- 行を削除しても崩れないようにするなら、ROW関数を使う
- 絞り込んだ行だけに振るなら、SUBTOTAL関数を使う
- 見出し行の数に合わせて、ROW関数の引く数を調整する
- 用途に合わせて、3つの方法を使い分ける
連番を自動にしておけば、表の追加や削除のたびに番号を直す必要がなくなります。


コメント