Excelで空白セルを削除してデータを左に移動するにはどうすればよいですか?
Excelでのデータセットの操作では、不要な空白セルがデータ内に散在することがよくあります。これらの空白は、特にデータエントリを整然と並べたい場合、計算、ソート、分析を妨害することがあります。手動で各空白セルを削除し、残りの内容を左に移動するのは、大量の情報がある場合には非常に時間がかかり、エラーも発生しやすいです。このチュートリアルでは、空白セルを削除して残りのセルを左に移動するためのいくつかの迅速かつ効率的な方法を紹介します。これにより、ワークシートが整理され、さらなる処理や分析に適したものとなります。以下の解決策は、手動、数式駆動型、プログラム可能なアプローチを好むかどうかにかかわらず、異なるニーズに対応しています。それぞれの方法の利点とトレードオフを理解することで、現実に最も適したものを選択することができます。
![]() | ![]() | ![]() |
移動機能 - 空白セルの削除と左への移動
Excel 数式 - 空白の削除とデータの左への移動
VBA コード - 空白セルの自動削除とデータの左への移動
移動機能 - 空白セルの削除と左への移動
空白セルを削除して残りのデータを左に移動したい場合、Excelには比較的小さくて一貫性のある範囲に対して素早く対応できる組み込みメソッドがあります。このアプローチは、数式やプログラミングを使いたくない場合に特に実用的です。しかし、これは基本的な一回限りのクリーンアップには最適ですが、自動化されたソリューションや非常に大きなデータセットには適していません。以下は、このタスクをステップごとに達成する方法です:
1. 削除したい空白セルを含むデータ範囲を選択します。これは1行、複数行、または全体のエリアでもかまいません。その後、 Ctrl + G を押して 移動 ダイアログを表示します。このウィンドウで、「 特殊 」をクリックして選択範囲をさらに絞り込みます。スクリーンショットをご覧ください:
2. 「 移動 特殊 」ダイアログボックスで、「 空白 」オプションをチェックし、「 OK」をクリックします。このステップでは、選択範囲内のすべての空のセルがハイライトされます。スクリーンショットをご覧ください:
3. すべての空白セルが選択されたら、選択された空白のいずれかを右クリックし、「 削除 」を選択します。スクリーンショットをご覧ください:
4. 「 削除 」ダイアログで、「 セルを左に移動 」オプションを選択し、「 OK」をクリックします。この操作により、すべてのデータが左に移動し、空白セルによって作られた以前のギャップがきれいに埋まります。スクリーンショットをご覧ください:
これらのステップを完了すると、空白セルが削除され、残りのデータが左に移動されます。下記の例をご覧ください:
![]() | ![]() | ![]() |
Excel 数式 - 空白の削除とデータの左への移動
行や列から空白を除去し、元のデータが変更されたときに結果が自動的に更新されるような動的な、数式駆動型のソリューションが必要な場合—ExcelのFILTER関数(Excel 365およびExcel 2021)が非常に効果的です。このアプローチは、元のデータをそのまま保持しながら、新しい範囲で空白のない左寄せ版を作成するのに特に有用です。
注: 使用可能な具体的な数式は、使用しているExcelのバージョンによって異なります。FILTER関数は新しいバージョン(Excel 365、Excel 2021以降)でのみ利用可能です。
1. データがA1:E10にあると仮定します(水平方向)。空白のない新しい行を作成するには、出力を表示したい空のセルを選択し、例えばF1を選択して、次の数式を入力します:
=FILTER(A1:E1, A1:E1 <> "")
この数式は、A1:E1から空白ではないセルだけを集め、F1から左揃えでリストします。
2. Enterを押すと、非空白データが新しい範囲内で自動的に左側に展開されます。その後、数式を下にドラッグまたはコピーします。
適用場面: この方法は、元のデータを変更せずに別の場所に整理された範囲を自動的に作成したい場合に推奨されます。ただし、制限事項として、元のデータを上書きするわけではなく、データの「仮想的」にシフトされたバージョンを提供します。
実践的なヒント: 新しい範囲に値のみを保持したい場合は、数式を適用した後、結果をコピーして「形式を選択して貼り付け」→「値」を使って元の範囲を上書きしてください。数式を他の場所にコピーする場合は、必ずセル参照を調整してください。
VBAコード - 空白セルの自動削除とデータの左への移動
頻繁に空白セルを削除して残りの項目を左に移動する必要がある場合(特に大規模または不規則なサイズのデータセットの場合)、VBAマクロを使用してこの繰り返し作業を自動化できます。このアプローチは、セルをその場で処理し、物理的に空白を削除して各行内でデータを左に「圧縮」します。マクロは時間を節約し、複雑なワークシートを扱う際の手動操作によるエラーを防ぎます。
1. 開発ツール>Visual Basic をクリックしてVBAエディタを開きます。表示されるMicrosoft Visual Basic for Applicationsウィンドウで、挿入>モジュールをクリックし、以下のコードをモジュール領域に貼り付けます:
Sub DeleteBlanksShiftLeft()
Dim WorkRng As Range
Dim RowRng As Range
Dim xTitleId As String
Dim i As Long, c As Long
Dim TempList As Collection
Dim Cell As Range
xTitleId = "KutoolsforExcel"
On Error Resume Next
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Select range to process (rows will be processed individually):", xTitleId, WorkRng.Address, Type:=8)
On Error GoTo 0
If WorkRng Is Nothing Then Exit Sub
Application.ScreenUpdating = False
' Process each row individually
For Each RowRng In WorkRng.Rows
Set TempList = New Collection
' Collect non-empty values in the row
For Each Cell In RowRng.Cells
If Trim(Cell.Value) <> "" Then
TempList.Add Cell.Value
End If
Next Cell
' Clear entire row first
RowRng.ClearContents
' Refill row with collected values from left to right
For i = 1 To TempList.Count
RowRng.Cells(1, i).Value = TempList(i)
Next i
Next RowRng
Application.ScreenUpdating = True
MsgBox "All blank cells in rows have been removed and values shifted left.", vbInformation
End Sub
2コードを挿入した後、「 」ボタンをクリックするか、 F5 キーを押してマクロを実行します。プロンプトが表示されたら、対象範囲を選択します。マクロは各行を処理し、空白を埋めるために値を左にシフトし、途中で空白セルを削除します。
適用場面: マクロは、VBAを有効にして使用することに慣れているユーザーに最適です。特に大規模なデータ範囲や再利用されるテンプレートで定期的に空白を削除する必要がある場合に便利です。この方法は実際に元のデータを変更するので、事前にワークシートをバックアップしておくことをお勧めします。データ構造が不規則だったり数式を含んでいる場合、マクロは値に基づいて動作し、依存関係を破壊する可能性があるため、注意が必要です。
トラブルシューティングのヒント: 想定外の結果が発生した場合、それは結合されたセル、数式の出力、または保護されたセルによるものかもしれません。マクロを実行する前に、必要な場合は結合解除、ロック解除、または数式をクリアしてください。
まとめの提案: 可能であれば、動的で非破壊的なデータ変換には数式を使用し、一括してその場で編集するにはマクロを使用してください。自動化を実行する前に常にデータのコピーを保存し、ワークシートのレイアウトが意図した通りに保たれているか確認してください。
特定の間隔でExcelの範囲に空白行または列を一括挿入 |
他のすべての行に空白行を挿入したい場合、1つずつ挿入する必要がありますが、Kutools for Excelの「空白行と列の挿入 」機能を使えば数秒でこの作業を完了できます。30日間の無料トライアルをご利用ください! |
Kutools for Excel: 300以上の便利なExcelアドインを搭載し、30日間無制限で無料体験可能 |
関連記事
最高のオフィス業務効率化ツール
🤖 | Kutools AI Aide:データ分析を革新します。主な機能:Intelligent Execution|コード生成|カスタム数式の作成|データの分析とグラフの生成|Kutools Functionsの呼び出し…… |
人気の機能:重複の検索・ハイライト・重複をマーキング|空白行を削除|データを失わずに列またはセルを統合|丸める…… | |
スーパーLOOKUP:複数条件でのVLookup|複数値でのVLookup|複数シートの検索|ファジーマッチ…… | |
高度なドロップダウンリスト:ドロップダウンリストを素早く作成|連動ドロップダウンリスト|複数選択ドロップダウンリスト…… | |
列マネージャー:指定した数の列を追加 |列の移動 |非表示列の表示/非表示の切替| 範囲&列の比較…… | |
注目の機能:グリッドフォーカス|デザインビュー|強化された数式バー|ワークブック&ワークシートの管理|オートテキスト ライブラリ|日付ピッカー|データの統合 |セルの暗号化/復号化|リストで電子メールを送信|スーパーフィルター|特殊フィルタ(太字/斜体/取り消し線などをフィルター)…… | |
トップ15ツールセット:12 種類のテキストツール(テキストの追加、特定の文字を削除など)|50種類以上のグラフ(ガントチャートなど)|40種類以上の便利な数式(誕生日に基づいて年齢を計算するなど)|19 種類の挿入ツール(QRコードの挿入、パスから画像の挿入など)|12 種類の変換ツール(単語に変換する、通貨変換など)|7種の統合&分割ツール(高度な行のマージ、セルの分割など)|… その他多数 |
Kutools for ExcelでExcelスキルを強化し、これまでにない効率を体感しましょう。 Kutools for Excelは300以上の高度な機能で生産性向上と保存時間を実現します。最も必要な機能はこちらをクリック...
Office TabでOfficeにタブインターフェースを追加し、作業をもっと簡単に
- Word、Excel、PowerPointでタブによる編集・閲覧を実現。
- 新しいウィンドウを開かず、同じウィンドウの新しいタブで複数のドキュメントを開いたり作成できます。
- 生産性が50%向上し、毎日のマウスクリック数を何百回も削減!
全てのKutoolsアドインを一つのインストーラーで
Kutools for Officeスイートは、Excel、Word、Outlook、PowerPoint用アドインとOffice Tab Proをまとめて提供。Officeアプリを横断して働くチームに最適です。





- オールインワンスイート — Excel、Word、Outlook、PowerPoint用アドインとOffice Tab Proが含まれます
- 1つのインストーラー・1つのライセンス —— 数分でセットアップ完了(MSI対応)
- 一括管理でより効率的 —— Officeアプリ間で快適な生産性を発揮
- 30日間フル機能お試し —— 登録やクレジットカード不要
- コストパフォーマンス最適 —— 個別購入よりお得