【この記事について】本記事は 2026年10月1日 時点で、Microsoft の公式サポート情報(記事末尾に出典)を確認し、あわせて Windows 版 Microsoft 365 の Excel(バージョン 16.0・ビルド 20430)で、この記事に出てくる数式と操作をすべて実際に動かして書いています。対象環境:Windows 版の Microsoft 365 の Excel(デスクトップ版)。Mac 版・Web 版、またはお使いのバージョンによって、画面の表示やボタンの名前が異なる場合があります。本記事の内容の利用は、ご自身の判断と責任でお願いします。
エクセルで連番を振るなら、後で行を消すかどうかで選び方が変わります。並び順が変わらない表なら 1 と 2 を入れてフィルハンドルをドラッグで十分です。行を削除したり並べ替えたりする表なら、数式で「上から何行目か」を出すのが安全です。ただし Microsoft の公式ページが案内する =ROW(A1) は、行を削除すると #REF! になりました(本記事の環境で実測)。この記事では、崩れない書き方までまとめます。

- まずはこれだけ|やりたいこと別の早見表
- 方法1|1 と 2 を入れて、フィルハンドルをドラッグする
- 方法2|1,000 行でもドラッグしない(連続データの作成)
- 方法3|行を削除しても崩れない連番(ROW 関数)
- 方法4|行を足したら自動で番号が付く形にする(テーブル)
- 方法5|データがある行だけに連番を振る(IF + COUNTA)
- 方法6|フィルターで絞っても 1 から振り直す(SUBTOTAL)
- 方法7|1つの数式で一気に並べる(SEQUENCE・Microsoft 365)
- 方法8|部署ごと・分類ごとに 1 から振る(COUNTIF)
- 「001」「007」のように桁をそろえたい
- 続きの番号から振りたい(MAX + 1)
- うまくいかないとき
- よくある質問
- まとめ
まずはこれだけ|やりたいこと別の早見表
最初に知っておくと得なことが1つあります。Microsoft の公式ページには、ほかの Microsoft 365 のアプリと違って Excel には「データに自動的に番号を付けるボタン」はないと書かれています。つまり、どの方法を選ぶかは自分で決めることになります。
| やりたいこと | 使うもの | この記事の場所 |
|---|---|---|
| とりあえず 1 から順に入れたい | フィルハンドルをドラッグ | 方法1 |
| 1,000 行ぶん入れたい(ドラッグしたくない) | [フィル]→[連続データの作成] | 方法2 |
| 行を削除しても番号が飛ばないようにしたい | =ROW()-1 |
方法3 |
| 行を足したら勝手に番号が付いてほしい | テーブルに変換する | 方法4 |
| 空の行を飛ばして、データがある行だけ数えたい | =IF(B2="","",COUNTA($B$2:B2)) |
方法5 |
| フィルターで絞ったとき 1 から振り直したい | =SUBTOTAL(3,$B$2:B2) |
方法6 |
| 1つの数式で一気に並べたい | =SEQUENCE(...) |
方法7 |
| 部署ごと・分類ごとに 1 から振りたい | =COUNTIF($C$2:C2,C2) |
方法8 |
| 001・007 のように桁をそろえたい | 表示形式 000 |
「001」と表示したい |
| 途中の番号から続けたい | =MAX($A$1:A2)+1 |
続きの番号から振りたい |
迷ったら、行を消す・並べ替える予定があるかどうかで決めてください。予定があるなら数式(方法3以降)、無いならドラッグ(方法1)でかまいません。
方法1|1 と 2 を入れて、フィルハンドルをドラッグする
いちばん速い方法です。Microsoft の公式ページも、この手順を最初に案内しています。
- 連番を入れたい列の1つ目のセルに 1、その下に 2 と入力します。
- その2つのセルを選びます。
- 選んだ範囲の右下にある小さな四角(フィルハンドル)にマウスを合わせ、カーソルが「+」に変わったら下へドラッグします。
本記事の環境では、1 と 2 を入れた2セルから8行ぶんドラッグすると、1・2・3・4・5・6・7・8 と入りました。
ダブルクリックで、隣のデータの終わりまで一気に入れる
隣の列にデータが入っているなら、ドラッグしなくてもかまいません。フィルハンドルをダブルクリックすると、隣の列のデータが終わっている行まで自動で入ります。氏名が10件ある表で試したところ、1 から 10 まで一度に入りました。
同じ数字がコピーされてしまうとき
よくあるつまずきです。本記事の環境で確かめた結果はこうなりました。
| やり方 | 結果 |
|---|---|
| 1 だけを入れてドラッグ | 1・1・1・1・1(コピーになる) |
| 1 と 2 を入れて、2つ選んでドラッグ | 1・2・3・4・5 |
| 1 だけを入れて、Ctrl を押しながらドラッグ | 1・2・3・4・5 |
つまり 数字が1つだけだと「コピー」、2つあると「連番」になります。1つしか入れていないときは、Ctrl を押しながらドラッグしてください。ドラッグし終わったあとに出る小さなボタン(オートフィル オプション)から[連続データ]を選んでも同じ結果になります。
なお、日付を連続で入れたいときは、同じドラッグでも「週日だけ」「月ごと」など選べる項目が増えます。日付のほうは次の記事で詳しくまとめています。

方法2|1,000 行でもドラッグしない(連続データの作成)
1,000 行、5,000 行となると、ドラッグは現実的ではありません。終わりの数字を指定して一気に入れる機能があります。
- 1つ目のセルに 1 と入力し、そのセルを選びます。
- [ホーム]タブ →[編集]グループの [フィル] →[連続データの作成]を選びます。
- [範囲]は[列]、[種類]は[加算]、[増分値]は 1、[停止値]に最後の番号(たとえば 1000)を入れて[OK]を押します。
本記事の環境で停止値に 1000 を入れたところ、1 行目から 1000 行目まで 1〜1000 が入り、1001 行目は空のままでした。停止値ぴったりで止まってくれるので、行数が決まっている表ではこれが一番確実です。
方法3|行を削除しても崩れない連番(ROW 関数)
ここがこの記事の本題です。方法1・方法2 で入れた番号はただの数字なので、あとで行を削除すると、その番号ごと消えます。本記事の環境で 1〜8 を入れた表の3行目を削除すると、残った番号は 1・2・4・5・6・7・8 となり、3 が欠番になりました。
これを避けるには、「上から何行目か」を数式で出します。
公式の案内どおり =ROW(A1) にすると、行の削除で #REF! になった(実測)
Microsoft の公式ページでは、連番の先頭のセルに =ROW(A1) と入れてフィルハンドルでドラッグする方法が案内されています。実際、A2 に =ROW(A1) と入れて下へドラッグすると 1・2・3・4・5 と並びました。
ただし、この形には弱点があります。数式が A1・A2・A3… という「別のセル」を指しているため、そのセルが行ごと削除されると参照先が消えます。本記事の環境で4行目を削除したところ、次のようになりました。
| 数式 | 削除前 | 4行目を削除した後 |
|---|---|---|
=ROW(A1) |
1・2・3・4・5 | 1・2・#REF!・4 ← 数式が =ROW(#REF!) に変わる |
=ROW()-1 |
1・2・3・4・5 | 1・2・3・4(そのまま続く) |
「行を削除しても崩れない連番」が目的なら、公式の =ROW(A1) ではなく =ROW()-1 を選んでください。ROW() をカッコの中身なしで使うと、その数式が入っているセル自身の行番号を返すので、指す先が消えることがありません。
見出しが1行目なら =ROW()-1
- 連番の先頭のセル(見出しの1つ下、A2)に
=ROW()-1と入力します。 - フィルハンドルを下へドラッグ(またはダブルクリック)します。
A2 は 2 行目なので 2-1=1、A3 は 3-1=2。引く数は見出しの行数です。見出しが2行あるなら =ROW()-2 にします。
見出しが途中の行にあるときは、見出しのセルを引く
表が5行目から始まっている(A5 が見出し)ようなときは、次の形が安全です。
=ROW()-ROW($A$5)
A6 に入れて下へドラッグすると 1・2・3・4 になりました。この形の良いところは、表より上に行を挿入されても番号がずれないことです。本記事の環境で、いちばん上に1行挿入して比べました。
| 数式 | いちばん上に1行挿入した後 |
|---|---|
=ROW(A1) |
2・3・4・5 ← 1 から始まらなくなる |
=ROW()-ROW($A$5) |
1・2・3・4(見出しの位置も自動で追いかける) |
行の挿入で数式の $A$5 が $A$6 に書き換わるため、引く数がひとりでに合い続けます。ここまでやっておくと、しばらく触らなくても壊れません。
方法4|行を足したら自動で番号が付く形にする(テーブル)
数式を入れても、後から行を足したときには自分で数式をコピーしないと番号が入りません。本記事の環境でも、=ROW()-1 を3行ぶん入れた表の下に氏名を1件追加しても、連番の列は空のままでした。
これを自動にするのが「テーブル」です。Microsoft の公式ページでも、新しい行を追加したときに自動で番号を入れたい場合はテーブルに変換する、と案内されています。
- 表の中のどこかをクリックし、Ctrl + T([挿入]タブ →[テーブル]でも同じ)を押します。
- [先頭行をテーブルの見出しとして使用する]にチェックを入れて[OK]。
- 連番の列に
=ROW()-1を入れます(見出しが1行目のとき)。
本記事の環境でテーブルにしたところ、テーブルのすぐ下の行に名前を打ち込んだだけで、テーブルが自動で広がり、連番の数式もコピーされて 4 が入りました。テーブルの途中に行を挿入したときも、番号は 1・2・3・4・5 と続いていました。
毎日追記していく名簿・受注表なら、テーブルにしておくのが結局いちばん楽です。
方法5|データがある行だけに連番を振る(IF + COUNTA)
「先に 500 行ぶん数式を入れておきたいけれど、まだ入力していない行に番号だけ並ぶのは見苦しい」というときの形です。
=IF(B2="","",COUNTA($B$2:B2))
B 列(氏名など)が空なら何も表示せず、入っていれば「ここまでに何件あるか」を数えます。本記事の環境で、氏名が3件だけ入った表に7行ぶんこの数式を入れたところ、1・2・3 の下は空白のままでした。そのあと空いていた行に名前を打つと、その行に 4 が出ました。
途中に空の行が混ざっている表でも同じです。8件の名簿のうち5行目だけを空にしたところ、連番は 1・2・3・4・(空)・5・6・7 となり、空の行を飛ばして数えてくれました。
方法6|フィルターで絞っても 1 から振り直す(SUBTOTAL)
連番を振った表をフィルターで絞り込むと、ふつうの連番は 1・2・5・8 のように飛びます。印刷して配る資料では、これが読みにくい原因になります。
見えている行だけを数えるのが SUBTOTAL 関数です。
=SUBTOTAL(3,$B$2:B2)
先頭の 3 は「COUNTA(空白以外の個数)で集計する」という意味の番号です。本記事の環境で、部署の列を「経理」で絞り込んで比べました。
| 絞り込み後に見えている行 | =ROW()-1 |
=SUBTOTAL(3,$B$2:B2) |
|---|---|---|
| 1件目(もとの3行目) | 3 | 1 |
| 2件目(もとの4行目) | 4 | 2 |
| 3件目(もとの7行目) | 7 | 3 |
1〜11 と 101〜111 の違い(手で隠した行の扱い)
Microsoft の公式ページでは、集計方法の番号 1〜11 は手動で非表示にした行を含み、101〜111 は含めない、そしてフィルターで除外されたセルはどちらでも常に除外されると説明されています。本記事の環境で、フィルターを使わず右クリックの[非表示]で2行を隠して比べた結果です。
| 見えている行 | SUBTOTAL(3,...) |
SUBTOTAL(103,...) |
|---|---|---|
| 1件目・2件目 | 1・2 | 1・2 |
| 隠した2行の下(3件目) | 5(隠した行も数えている) | 3(隠した行を数えない) |
フィルターだけを使うなら 3 で足ります。右クリックで行を隠す運用があるなら 103 にしてください。行が隠れているのか消えているのか分からないときは、次の記事の切り分け方が役に立ちます。

実測した落とし穴|SUBTOTAL が最終行にあると、その行がフィルターから外れた
これは知らないと気づけない挙動です。本記事の環境で、ふつうのセル範囲(テーブルにしていない表)の連番列に SUBTOTAL を入れ、いちばん下の行まで数式が入った状態でオートフィルターをかけたところ、最終行だけが絞り込みの対象から外れ、条件に合わないのに表示されたままになりました。Excel が「SUBTOTAL がある最後の行=集計行」と判断して、フィルターの範囲から除いたためです。
同じ表を Ctrl + T でテーブルに変換してからフィルターをかけると、最終行もきちんと絞り込まれました。SUBTOTAL で連番を振るなら、表はテーブルにしておくのが安全です。方法4 と組み合わせてください。
方法7|1つの数式で一気に並べる(SEQUENCE・Microsoft 365)
Microsoft 365 や Excel 2021 以降なら、1つのセルに入れるだけで必要な行数ぶん番号が並びます。
=SEQUENCE(8)
本記事の環境では、A2 に入れただけで A2〜A9 に 1〜8 が並びました(この、下へ自動で広がる動きを「スピル」と呼びます)。件数に合わせたいときは、行数のところを COUNTA にします。
=SEQUENCE(COUNTA(B2:B1000))
氏名5件で 1〜5 が並び、6件目を追加したらすぐに 1〜6 に伸びました。数式は先頭のセルに1つだけなので、管理もいちばん楽です。
気をつける点が1つあります。広がった範囲の中のセルに何か入力すると、先頭のセットが #SPILL! エラーになり、番号が全部消えました。SEQUENCE を使う列には、手で何も書き込まないでください。
方法8|部署ごと・分類ごとに 1 から振る(COUNTIF)
「営業-1、営業-2、経理-1…」のような枝番です。
=COUNTIF($C$2:C2,C2)
C 列が部署なら、「ここまでに同じ部署が何回出たか」を数えます。本記事の環境の結果です。
| 部署 | この数式の結果 |
|---|---|
| 営業 | 1 |
| 営業 | 2 |
| 経理 | 1 |
| 経理 | 2 |
| 営業 | 3 |
| 総務 | 1 |
| 経理 | 3 |
| 営業 | 4 |
「営業-1」のように文字をつなげたいときは =C2&"-"&COUNTIF($C$2:C2,C2) にします。範囲の始まり $C$2 を $ で固定するのを忘れないでください。ここを固定しないと、下の行で数える範囲ごとずれていきます。
「001」「007」のように桁をそろえたい
ここは数値のままにするか、文字列にするかで分かれます。本記事の環境で3つとも試しました。
| やり方 | セルの中身 | 画面の表示 | 合計などの計算 |
|---|---|---|---|
表示形式に 000 を指定 |
7(数値のまま) | 007 | できる(SUM で 7 になった) |
=TEXT(ROW()-1,"000") |
“001”(文字列) | 001 | そのままでは数値として扱われない |
セルに直接 001 と入力 |
1 になった | 1 | できる(ただし 0 が消える) |
おすすめは 表示形式です。[ホーム]タブ →[数値]グループ右下の小さな矢印 →[表示形式]タブ →[ユーザー定義]を選び、[種類]に 000 と入れて[OK]。これなら見た目は 007 で、中身は数値のままなので、並べ替えや計算に使えます。
TEXT 関数で作った「001」は文字列です。本記事の環境で ISNUMBER で確かめたところ FALSE(数値ではない)でした。伝票番号のように計算しない番号ならこれでもかまいませんが、社員番号を VLOOKUP のキーに使うような表では、片方が文字列で片方が数値という食い違いが起きやすくなります。
なお、どうしてもセルに文字として 007 と入れたいときは、先にそのセルの表示形式を[文字列]にしてから入力すれば、007 のまま保持されました。
続きの番号から振りたい(MAX + 1)
「途中まで手で入れてある番号の続きから振りたい」ときは、上の最大値に 1 を足します。
=MAX($A$1:A2)+1
A1 に 1、A2 に 2 が手入力されている表の A3 にこの数式を入れて下へドラッグすると、3・4・5・6 と続きました。途中から数式に切り替えられるので、既に配られている資料の続きを作るときに便利です。
うまくいかないとき
結合セルがあると、連番が振れない
いちばん多い行き止まりです。本記事の環境で、2行ぶんを結合したセルと3行ぶんを結合したセルが混ざった列でドラッグしたところ、次のメッセージが出て操作が止まりました。
「この操作を行うには、すべての結合セルを同じサイズにする必要があります。」
結合の大きさがすべて同じなら(2行ずつなど)連番は入りました。ただし大きさが違うものが1つでも混ざると、連番も並べ替えも止まります(同じメッセージで並べ替えも失敗しました)。連番を振る前に結合を解くのが確実です。解き方と、解いたあとの表の整え方は次の記事にまとめています。

行を挿入しても、番号が入らない
数式でも手入力でも、挿入した行は空のままです(本記事の環境で両方確認しました)。上のセルをコピーして貼るか、方法4 のテーブルにしてください。テーブルなら挿入した行にも数式が入ります。
フィルターで絞ると番号が飛ぶ
ふつうの連番の仕様です。絞り込んでも 1 から見せたいなら方法6 の SUBTOTAL にしてください。
並べ替えたら、番号がバラバラになった
同じ表を氏名で並べ替えて、本記事の環境で比べました。
| 連番の入れ方 | 並べ替えた後の No 列 | 意味 |
|---|---|---|
=ROW()-1 |
1・2・3・4・5(そのまま) | いまの並び順の通し番号になる |
| ただの数字(1〜5) | 2・1・3・4・5(データに付いて動く) | もともと何番だったかが残る |
つまり、バラバラになったのではなく役割が違うだけです。「並べ替えても上から 1・2・3 にしたい」なら数式、「元の番号を残したい」ならただの数字。どちらが欲しいかを先に決めるのが、この作業でいちばん大事なところです。
よくある質問
Q. 数式の連番を、ただの数字に変えられますか?
A. できます。連番の列を選んで Ctrl + C でコピーし、同じ場所で右クリック →[貼り付けのオプション]の[値](123 のアイコン)を選ぶと、数式が消えて数字だけが残ります。表を人に渡す前や、印刷して番号を固定したいときに使ってください。
Q. 1行おきに連番を入れたいのですが。
A. 1・(空白)・2・(空白)の4セルをまとめて選んでからフィルハンドルをドラッグすると、同じ間隔のまま続きます。本記事の環境では 1・空・2・空・3・空・4… と12行ぶん並びました。ただし1行おきの表は集計や並べ替えで扱いにくくなるので、見た目を空けたいだけなら行の高さや罫線で調整するほうが後が楽です。
Q. 連番を「1, 2, 3」ではなく「第1号」のようにしたいです。
A. 表示形式の[ユーザー定義]に "第"0"号" と入れてください。本記事の環境では「第1号」と表示され、中身は数値のままで SUM も通りました。数式でつなげる ="第"&ROW()-1&"号" でも「第1号」になりますが、こちらは文字列になります。
Q. 印刷したとき、2ページ目に連番の続きが出ません。
A. 連番そのものは入っていても、見出し行が2ページ目以降に印刷されないと「途中から始まった表」に見えてしまいます。[ページレイアウト]タブ →[印刷タイトル]で[タイトル行]に見出しの行を指定すると、どのページにも見出しが付きます。あわせて、連番の列は表の左端に置くと、列が切れても番号だけは残ります。
Q. どの関数を覚えるか、そもそも迷います。
A. この記事で出てきたのは ROW・COUNTA・COUNTIF・SUBTOTAL・TEXT・MAX・SEQUENCE です。事務の仕事で先に覚えるとよい関数を、やりたいことから引ける形で整理した記事があります。

まとめ
- Excel には自動で番号を振るボタンは無い。方法を自分で選ぶ。
- 並びが変わらない表 → 1 と 2 を入れてドラッグ。数字が1つだけだとコピーになる。
- 行数が多い → [フィル]→[連続データの作成]で停止値を指定。
- 行を削除する表 →
=ROW()-1。公式の=ROW(A1)は行の削除で #REF! になった。 - 表より上に行が増えるなら →
=ROW()-ROW($A$5)(見出しのセルを引く)。 - 行を足していく表 → Ctrl + T でテーブルにすれば数式が自動で入る。
- フィルターで 1 から振り直す →
=SUBTOTAL(3,$B$2:B2)。手で隠す行があるなら103。テーブルにしてから使う。 - 001 にしたい → 表示形式
000(数値のまま)。TEXT 関数は文字列になる。
連番は、Excel を覚え始めた人が最初につまずくところでありながら、いちばん「分かっている人」に見えるところでもあります。行を1つ消しただけで番号が飛ぶ表を、消しても崩れない表に変えられれば、その表はもうあなたが管理する表です。まずは今いちばんよく開くファイルの連番を、=ROW()-1 に1回だけ置き換えてみてください。それだけで、明日から直す手間が消えます。
次に読む


出典(2026年10月1日 確認)
Excel で行に自動的に番号を付ける|Microsoft サポート
https://support.microsoft.com/ja-jp/excel/get-started/automatically-number-rows-in-excel
ワークシートのセルに自動的にデータを入力する|Microsoft サポート
https://support.microsoft.com/ja-jp/excel/get-started/fill-data-automatically-in-worksheet-cells
ROW 関数|Microsoft サポート
https://support.microsoft.com/ja-jp/excel/functions/row-function
SUBTOTAL 関数|Microsoft サポート
https://support.microsoft.com/ja-jp/excel/functions/subtotal-function
SEQUENCE 関数|Microsoft サポート
https://support.microsoft.com/ja-jp/excel/functions/sequence-function
TEXT 関数|Microsoft サポート
https://support.microsoft.com/ja-jp/excel/functions/text-function
Excel のテーブルの概要|Microsoft サポート
https://support.microsoft.com/ja-jp/excel/overview-of-excel-tables


コメント