SkillStack Lab 運営者の「スタック」です。
毎日の業務でデータ入力をしていると、エクセルで数字を1ずつ増やす作業が意外と手間だと感じることってありませんか。
「1、2、3…」と手入力しているうちに集中力が切れてミスをしてしまったり、せっかく作った表に行を追加・削除したら番号がズレてしまって、また最初からやり直しなんてことも珍しくありません。
特に、フィルタをかけた状態で連番を振り直したいときなどは、「もっとスマートな方法はないの?」と頭を抱えてしまうことも多いはずです。
実は、この「エクセルで数字を1ずつ増やす関数」や機能には、おなじみのオートフィルやROW関数だけでなく、最新のSEQUENCE関数など、驚くほど便利な手法がいくつも存在します。
もしかすると、あなたが今抱えている「数字が増えない」「グループごとに連番を振りたい」といった悩みも、ほんの少しの工夫で一瞬で解決できるかもしれません。
この記事では、私が実際に現場で使って便利だと感じたテクニックを中心に、初心者の方でもすぐに実践できる方法をわかりやすく解説していきます。
- オートフィルや関数を使って一瞬で連番を作成する基本操作
- 行の削除や並べ替えを行っても番号が崩れない実践的なテクニック
- フィルタリングやグループ分けに対応した高度な連番の振り方
- 最新のSEQUENCE関数を活用した効率的なデータ管理術

エクセルで数字を1ずつ増やす関数と基本の連番作成

ここでは、エクセルで数字を1ずつ増やすための最も基本的な関数や機能について解説します。
手入力からの卒業を目指し、まずはオートフィルや基本的な関数の使い方をマスターして、日々の単純作業を効率化していきましょう。
エクセルで連番を自動入力する効率的な方法
エクセルを使っていると、通し番号や会員ID、商品コードなどを振る機会は非常に多いですよね。
私も昔は何も知らずに「1, 2, 3…」とひたすら手入力していましたが、データが数百行を超えたあたりで限界を感じた経験があります。
手入力は時間がかかるだけでなく、タイプミスや重複入力の温床にもなり、データの品質を下げてしまうリスクがあります。
最も効率的なのは、エクセルの機能を状況に合わせて使い分けることです。
例えば、一度だけの入力で済むならマウス操作だけで完結する「オートフィル」が圧倒的に早いですし、後から行を挿入したり削除したりする可能性がある流動的なリストなら「関数」を使って自動計算させるのがベストです。
ポイント
静的なデータ(固定された番号)が欲しいときは「オートフィル」、動的なデータ(行の増減に対応して変化する番号)が欲しいときは「関数」を選ぶのが鉄則です。
エクセルで数字を連続データとして扱う基本操作
まずは関数を使わない、最も直感的な方法である「オートフィル」から見ていきましょう。
これはセルの右下にある「フィルハンドル(■)」をドラッグしてデータをコピーする機能ですが、実は数字の増やし方にはちょっとしたコツがあります。
通常、数字の「1」が入ったセルをそのまま下にドラッグすると、「1, 1, 1…」と同じ数字がコピーされてしまいますよね。ここで「Ctrlキー」を押しながらドラッグしてみてください。
すると、マウスカーソルの右上に小さな「+」マークが現れ、自動的に「1, 2, 3…」と数字を1ずつ増やしてくれます。

また、隣の列にすでにデータが入力されている場合は、フィルハンドルをダブルクリックするだけで、データの最下行まで一瞬で連番を埋めることができます。
数千行あるデータの場合、ドラッグするのは大変なので、このダブルクリック技は必須です。
豆知識
もし「1」と「2」を縦に入力して両方のセルを選択してからドラッグすれば、エクセルが「1ずつ増える法則」を認識してくれるので、Ctrlキーなしでも連番になります。
「1」と「3」を入力すれば「1, 3, 5, 7…」と奇数の連番も作れますし、「5」と「10」なら5ずつ増やすことも可能です。
エクセルで行番号を取得するROW関数の活用法
次に、関数を使ったアプローチです。最もポピュラーなのがROW関数です。
この関数は、その名の通り「現在の行番号」を返してくれます。
オートフィルで作った連番は「ただの数値」なので、途中の行を削除すると欠番(1, 2, 4, 5…)が生じますが、ROW関数なら自動で再計算されるため、常に整った連番を維持できます。
例えば、A1セルに =ROW() と入力すると「1」が返ってきます。
しかし、表には見出し行があって、データが2行目や3行目から始まることの方が多いですよね。そんな時は、引き算をして調整します。
| 状況 | 数式例 | 解説 |
|---|---|---|
| 2行目から連番を開始したい | =ROW() - 1 | 現在の行番号(2)から1を引いて「1」にする |
| 3行目から連番を開始したい | =ROW() - 2 | 現在の行番号(3)から2を引いて「1」にする |

このROW関数の最大のメリットは、行を削除しても番号が自動で詰められることです。
リストのメンテナンス性が格段に向上するので、頻繁に行の入れ替えが発生するタスク管理表などでは非常に重宝します。
新機能SEQUENCE関数で動的連番を作る
Excel 2021やMicrosoft 365を使っている方なら、ぜひ試してほしいのがSEQUENCE関数です。
これは「スピル」という新しい概念を使った関数で、たった一つのセルに数式を入れるだけで、指定した行数分の連番を一気に生成してくれます。
例えば、A2セルに =SEQUENCE(10) と入力するだけで、A2からA11まで「1〜10」がズラッと表示されます。従来の配列数式のように難しい操作は一切不要です。
これを応用して、データの個数を数えるCOUNTA関数と組み合わせると非常に強力です。
=SEQUENCE(COUNTA(B:B)-1) のように記述すれば、「B列に入力されているデータの数だけ自動で連番を振る」ということが可能になります。
データが増えれば連番も勝手に伸びてくれるので、管理が本当に楽になりますよ。(出典:Microsoft サポート『SEQUENCE 関数』)

エクセルのオートフィルで数字が増えない時の対処
「あれ、ドラッグしたのに数字が増えない!」というトラブル、よくありますよね。これはエクセルの「オートフィルオプション」の設定や、ドラッグ時の挙動が原因であることがほとんどです。
もし数字が「1, 1, 1…」となってしまった場合は、慌てずにドラッグし終わった直後にセルの右下に表示される小さなアイコン(オートフィルオプション)をクリックしてみてください。
そこで「連続データ」を選択すれば、後からでもコピーされた値を連番に変更できます。
注意点
フィルタがかかっている状態でオートフィルをすると、非表示になっている行にも値が上書きされてしまうことがあります。
フィルタ適用中はオートフィルではなく、後述するSUBTOTAL関数などを使うのが安全です。見えないデータを誤って書き換えてしまう事故を防ぎましょう。
エクセルで数字を1ずつ増やす関数の応用テクニック
ここからは、実務で直面する「ちょっと困った」を解決する応用編です。
行の削除やフィルタリング、グループごとの連番など、エクセルで数字を1ずつ増やす関数を使いこなして、より高度なデータ管理を実現しましょう。
エクセルで行削除しても連番が飛ばない計算式
先ほどROW関数を紹介しましたが、より堅牢で壊れにくい作り方があります。
単純に =ROW() - 1 と書くと、行を挿入して見出しの位置がずれたり、表全体を別の場所に移動させた時に計算が狂ってしまうことがあります。
そこで私がおすすめするのは、固定値で引くのではなく、見出し行そのものを参照して引く方法です。例えば見出しがA1セルにあるなら、以下のように書きます。
=ROW() - ROW($A$1)
これなら、もし表全体が下に移動しても、「自分の行番号」と「見出しの行番号」の差分は変わらないので、常に正しい連番「1」からスタートできます。
長く使うファイルや、他の人が編集する可能性があるファイルなら、この書き方の方がトラブルが少ないかなと思います。
フィルタ結果に合わせて連番を振り直す方法
「フィルタで絞り込んだデータだけに、上から1, 2, 3…と番号を振りたい」というケースも多いですよね。
通常のROW関数だと、非表示になっている行もカウントしてしまうため、フィルタ結果は「1, 5, 8, 12…」のように飛び飛びになってしまいます。これでは資料として印刷したときに見栄えが悪いですよね。
これを解決するのがSUBTOTAL関数です。
この関数は、フィルタリングによって「見えているセルだけ」を集計することができる特殊な関数です。
数式は少し特殊ですが、以下のように入力します。
=SUBTOTAL(3, $B$2:B2)
ここでのポイントは、「$B$2:B2」という範囲指定です。始点($B$2)を絶対参照で固定し、終点(B2)を相対参照にすることで、数式を下にコピーした時に範囲が徐々に広がっていきます。
そして「3」という引数はCOUNTA(データの個数)を意味しますが、SUBTOTAL関数で使うと非表示の行を無視してカウントしてくれるのです。
これにより、フィルタをかけるたびに番号が「1」から美しく振り直されます。

エクセルの連番をグループごとに振る数式
「部署ごとに1から連番を振りたい」「日付ごとに番号をリセットしたい」という要望もよく聞きます。
これはCOUNTIF関数を使うと驚くほど簡単に実装できます。
例えばA列に「部署名」が入っていて、B列に「部署内連番」を振りたい場合、B2セルに以下の数式を入れます。
=COUNTIF($A$2:A2, A2)
この数式の仕組みは、「リストの最初から自分自身の行までの範囲($A$2:A2)の中で、自分と同じ部署名(A2)がいくつあるか」を数えています。
営業部が最初に出てきたら「1」、2回目に出てきたら範囲内に2つあるので「2」となります。部署名が変われば、その新しい部署名はまだその範囲内で1回目なので、自動的に「1」に戻ります。

ポイント
このテクニックを使えば、VBAなどの難しいプログラムを使わなくても、複雑なカテゴリ別ID管理が可能になります。
テーブル機能と構造化参照による連番管理
最後に紹介するのは、エクセルの「テーブル機能」を使った方法です。
データ範囲を選択して「Ctrl + T」を押すとテーブルに変換されますが、この状態での連番管理は非常にスマートです。
テーブル内で数式を入力すると「構造化参照」という形式になり、=[@列名] のような記述になります。ここでROW関数を使うと、行を追加した瞬間に数式が自動的にコピーされ、常に最新の連番が維持されます。
例えば、テーブルの見出しが1行目にある場合、以下のような数式を設定します。
=ROW() - ROW(テーブル名[#Headers])
手動で数式をコピー&ペーストする必要がなくなるので、入力漏れというヒューマンエラーを根絶できます。
チームでファイルを共有する場合などは、テーブル機能を使って管理するのが最も安全でおすすめです。

💡 「エクセルでの業務効率化」に限界を感じていませんか?
関数を使ったエクセルの効率化は非常に便利ですが、請求書や見積書の発行など「毎月発生する定型業務」までエクセルの手作業や複雑な数式に頼り続けるのは、実はかなりの時間と労力(コスト)がかかります。
「関数やマクロのエラーに怯える日々から抜け出したい」
「誰かが休むと業務が回らない『エクセル属人化』を根本から解消したい」
そう感じたことのある総務・経理・バックオフィス担当者に向けて、元社内SE・現役管理職の視点で「日々の定型業務を劇的に楽にする脱エクセル(SaaS)ツール」を厳選しました。
いきなり会社で稟議を通す必要はありません。時間を無駄にせず業務を効率化したい方は、まずはノーリスクの無料登録や資料請求を活用して、専用ツールの圧倒的な「ラクさ」をご自身の目で確かめてみてください。
\ エクセルの手作業を今日でやめるなら /
エクセルで数字を1ずつ増やす関数の最適な選び方

ここまで様々な方法を紹介してきましたが、最後に「結局どれを使えばいいの?」という疑問にお答えしてまとめたいと思います。
まず、使い捨てのリストや、今後行が増減しないデータであれば、単純な「オートフィル」が一番早いです。
一方で、行の削除や追加が頻繁に発生する名簿や管理表なら、「ROW関数」や「SEQUENCE関数」を仕込んでおくのが正解です。
さらに、フィルタを多用して画面上の表示順を重視するなら「SUBTOTAL関数」、特定のカテゴリごとに管理したいなら「COUNTIF関数」と使い分けるのが良いでしょう。
エクセルで数字を1ずつ増やす関数は、単なる入力の補助だけでなく、データの信頼性を守る重要なツールです。
ぜひあなたの業務スタイルに合った方法を選んで、快適なエクセルライフを送ってくださいね。
