セルのリストで連番を自動入力し、空白行をスキップするにはどうすればよいですか?
Excel でデータリストを扱う際、すべてのセルが必ずしも埋まっているとは限りません。たとえば、外部からインポートした情報やアンケートの回答を集計した結果、エントリーの間に空白セルがいくつか含まれることがあります。こうした場合、番号付けシステムから空白セルを除外し、連番が途切れることなくスムーズに続くようにしたいものです。これによりリストが整理され、特に総行数の確認やエントリーの体系的な追跡を行う際に、可読性が格段に向上します。
以下は、いくつかの空白行を含むリストの例です。目的は、データが入力されているセルにのみ連番を振ることで、空白行を自動的にスキップすることです(下図参照)。

本記事では、Excel でこれを実現するための実用的な方法をいくつかご紹介します。
- 数式を使って連番を自動入力し、空白セルをスキップする
- VBA コード - 空白セルをスキップしながら連番を自動生成・入力する
- その他のExcel の組み込み機能 - Power Query を使用してインデックスを追加し、空白をフィルターする
<2 style=「border-bottom: solid2px #217346;」>数式を使って連番を自動入力し、空白セルをスキップする
データセット内の非空白セルにだけ簡単に連番を振り、空の行をスキップしたい場合は、COUNTA 関数、ISBLANK 関数、IF 関数を組み合わせたExcel 数式を使うのが効率的です。この方法は、データが単一の列にあり、セルにデータが入力されるたびに即座に連番を生成したい場合に最適です。
この手法は、中規模のデータセットを手動で管理する場合や、コードや追加のExcel ツールを使わずに迅速な解決策が必要な場面で特に効果を発揮します。
このソリューションを実装するには、以下の手順に従ってください。
1。 連番を開始したい空白セル(たとえば、列 A のデータが A2 から始まる場合、セル B2)を選択し、次の数式を入力します。
パラメーターの説明:
- A2:空白かどうかを確認するセルです。
- $A$2:A2:下方向に数式をコピーすると自動的に拡張される範囲で、これまでに出現した非空白セルの数をカウントするために使用されます。
- この数式は、列 A の対応するセルにデータが含まれている場合にのみ連番を返し、それ以外の場合は空文字列を返します。
2。Enter キーを押して数式を確定します。その後、セルの右下隅にカーソルを合わせてフィルハンドルを表示し、リストに沿って下方向にドラッグすると、数式が各行で自動的に更新され、データが存在する行にのみ番号が振られ、空白行はそのままになります。
最良の結果を得るには、対象セルにスペースや不可視文字が含まれていないことをご確認ください。エラーや予期しない空白が表示される場合は、該当セルから不要なコンテンツをクリアしてください。また、データ範囲が頻繁に変更される場合は、数式の管理をより簡単にするため、その範囲をテーブルに変換することをおすすめします。
数式を正しく適用すれば、以下のスクリーンショットと同じ結果が得られるはずです。

計算エラーが発生した場合は、範囲参照の誤りやデータセット内の結合セルを確認してください。これらが連番の生成を妨げる原因となることがあります。

KUTOOLS AI でExcel の魔法を解き放ちましょう
- スマート実行:セル操作、データ分析、チャート作成をすべてシンプルなコマンドで実現します。
- カスタム数式:ワークフローの効率化に役立つ、あなただけのカスタマイズ数式を生成します。
- VBA コーディング:VBA コードを簡単に記述・実装できます。
- 数式の解釈:複雑な数式が簡単に理解できます。
- テキスト翻訳:スプレッドシート内で言語の壁を乗り越えましょう!
VBA コード - 空白セルをスキップしながら連番を自動生成・入力する
長大なリストや頻繁に変更されるデータなど、より自動化された処理が必要なユーザーには、VBA マクロを使って非空白セルにのみ連番を割り当て、空白セルはそのままにする方法があります。この方法は、大量のデータを効率よく処理したい場合や保存時間を短縮したい場合、あるいは繰り返し使えるカスタムソリューションをお求めの場合に最適です。
VBA マクロを設定・使用してこれを実現する方法は次のとおりです。
1。Excel の上部メニューから開発者タブに移動し、Visual Basicをクリックします。挿入>標準モジュールを選択して、次のコードをモジュールに貼り付けます。
Sub FillSerialNumbersSkipBlanks()
Dim Rng As Range
Dim cell As Range
Dim SerialNum As Long
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set Rng = Application.Selection
Set Rng = Application.InputBox("Select the data range based on which serial numbers will be filled", xTitleId, Rng.Address, Type:=8)
SerialNum = 1
For Each cell In Rng
If Not IsEmpty(cell.Value) Then
cell.Offset(0, 1).Value = SerialNum
SerialNum = SerialNum + 1
Else
cell.Offset(0, 1).Value = ""
End If
Next cell
End Sub 2。コードを貼り付けたらExcel に戻り、
実行ボタンをクリックします。するとダイアログボックスが表示され、データを含むセル範囲(例:A2:A20)を選択するよう促されます。このコードは、元の範囲内の空白セルをスキップしながら、隣接する列(B2:B20)に連番を入力します。
選択範囲に結合セルや空白を表示する数式が含まれていると、精度に影響が出る可能性があります。より信頼性の高い結果を得るには、単一で未結合のセルを使用することをおすすめします。マクロが期待通りに動作しない場合は、Excel でマクロが有効になっており、かつ正しいデータ範囲が選択されていることをご確認ください。
この VBA ソリューションは、非空白データの横に自動的に連番を割り当て、必要に応じて他の列や範囲でも簡単に再利用できます。連番を別の列に入力したい場合は、cell.Offset(0,1)の参照を調整してください。
その他のExcel の組み込み機能 - Power Query を使用してインデックスを追加し、空白をフィルターする
Power Query は、データの処理と変換に極めて柔軟なアプローチを提供し、非空白セルに対してのみ連番を生成することも可能です。この方法は、大規模なデータセットの処理、外部ソースからのデータインポート、あるいは元データが変更された際に動的に更新したい場面に最適です。このソリューションの最大のメリットは、再現性と自動化が可能であることに加え、番号付けと同時にデータクレンジングも行える点にあります。
Power Query を使用して空白をスキップしながら連番を入力するには:
- まず、データ範囲を選択し、次にデータ > テーブル/範囲からをクリックして、データを Power Query に読み込みます。必要に応じて、Excel がデータの周囲にテーブルを作成することを許可してください。
- Power Query エディターで、対象列が空白の行をすべてフィルターで除外します。列のヘッダーにあるドロップダウン矢印をクリックし、「(null)」のチェックを外して[OK]をクリックしてください。
- 空白を除外した後は、列の追加 > インデックス列をクリックし、1 から開始を選択して連番を1 から始めるか、0 から開始を選択してゼロベースのインデックスを使用してください。
- [閉じて読み込む]をクリックすると、連番が完全に振られ、空白のないデータテーブルがExcel に戻ります。
Power Query なら、ソースデータが変更されても簡単に再更新でき、連番も自動的に更新されます。データ構造が頻繁に変わる可能性がある場合、このアプローチは安定性と再現性を確保します。ただし、シンプルなリストに対しては、数式や VBA による方法よりも設定が複雑になることがあります。
範囲から読み込めないなどの問題が発生した場合は、データが結合されておらず、テーブルとして適切に書式設定されていることをご確認ください。Power Query で非常に大量のデータを処理する際は、一般的にパフォーマンスは安定していますが、不整合のある入力を整えるために追加のクレンジング手順が必要となる場合があります。
上記の各方法は、データ量や使用習慣に応じて選べます。数式による方法は小規模な範囲に対して迅速かつ簡単で、VBA は一括処理や繰り返しタスクに最適です。一方、Power Query は上級ユーザー向けで、変化するデータセットの処理に特に優れています。
さらにサポートが必要な場合は、番号付けやデータ整理に関するより実践的な例を、Excel ヘルプまたはKutools サポートドキュメントでご確認ください。
最高の Office 生産性ツール
Kutools for Excel - あなたを群衆の中から際立たせます
| 🤖 | KUTOOLS AI アシスト:次に基づいてデータ分析を革新します:インテリジェント実行 | コード生成| カスタム数式作成 | データ分析とチャート生成| 拡張機能呼び出し… |
| 人気機能:検索・ハイライト・重複をマーキング | 空白行を削除する | データを失うことなく列の結合またはセルを | 数式を使用しない四捨五入... | |
| スーパー VLookup:複数条件 | 複数値 | 複数シート間 | ファジーマッチ... | |
| 高度なドロップダウンリスト:簡単なドロップダウンリスト | 連動型ドロップダウンリスト | 複数選択可能なドロップダウンリスト... | |
| 列マネージャー:指定した数の列を追加 | 列の移動 | 非表示列の表示状態を切り替え |列を比較して同じ/異なるセルを選択... | |
| 注目の機能:グリッドフォーカス | デザインビュー | 強化された数式バー | ワークブックとシートマネージャー|リソースライブラリ(オートテキスト)| 日付ピッカー | ワークシートの統合 | 暗号化/セルの復号化 | リストからメール送信 | スーパーフィルター | 特殊フィルタ(太字のフォントを持つセルをフィルタリング/イタリック/取り消し線。。。) 。。。 | |
| トップ15 ツールセット:12 テキストツール(テキストの追加、特定の文字を削除...)| 50+チャートタイプ(ガントチャート...)| 40+実用的な数式(誕生日に基づいて年齢を計算します...)| 19 挿入ツール(QR コードを挿入、パスから画像を挿入...)| 12 変換ツール(単語に変換する、為替レートの変換...)| 7 結合と分割ツール(高度な行のマージ、Excel セルを分割...)|。。。他にも多数 |
Kutools for Excel は300 以上の機能を備えており、必要な機能が常にワンクリックで利用できます…
Office Tab - Microsoft Office(Excel を含む)でタブを使った閲覧・編集を可能にします
- 数十もの開いているドキュメントを1 秒で切り替えられます!
- 毎日何百回ものマウスクリックを削減して、マウス手の悩みともさよならしましょう。
- 複数のドキュメントを閲覧・編集する際の生産性が50%も向上します。
- Office(Excel を含む)に、Chrome、Edge、Firefox のような効率的なタブ機能をもたらします。