メインコンテンツへスキップ

Kutools for Office — 1つのスイート、5つのツールで、もっと多くのことを成し遂げましょう。

Excelで空白セルを削除してデータを左に移動するにはどうすればよいですか?

Author Sun Last modified

Excelでのデータセットの操作では、不要な空白セルがデータ内に散在することがよくあります。これらの空白は、特にデータエントリを整然と並べたい場合、計算、ソート、分析を妨害することがあります。手動で各空白セルを削除し、残りの内容を左に移動するのは、大量の情報がある場合には非常に時間がかかり、エラーも発生しやすいです。このチュートリアルでは、空白セルを削除して残りのセルを左に移動するためのいくつかの迅速かつ効率的な方法を紹介します。これにより、ワークシートが整理され、さらなる処理や分析に適したものとなります。以下の解決策は、手動、数式駆動型、プログラム可能なアプローチを好むかどうかにかかわらず、異なるニーズに対応しています。それぞれの方法の利点とトレードオフを理解することで、現実に最も適したものを選択することができます。

original data  arrow right delete blank cells and move data left

移動機能 - 空白セルの削除と左への移動
Excel 数式 - 空白の削除とデータの左への移動
VBA コード - 空白セルの自動削除とデータの左への移動


移動機能 - 空白セルの削除と左への移動

空白セルを削除して残りのデータを左に移動したい場合、Excelには比較的小さくて一貫性のある範囲に対して素早く対応できる組み込みメソッドがあります。このアプローチは、数式やプログラミングを使いたくない場合に特に実用的です。しかし、これは基本的な一回限りのクリーンアップには最適ですが、自動化されたソリューションや非常に大きなデータセットには適していません。以下は、このタスクをステップごとに達成する方法です:

1. 削除したい空白セルを含むデータ範囲を選択します。これは1行、複数行、または全体のエリアでもかまいません。その後、 Ctrl + G を押して 移動 ダイアログを表示します。このウィンドウで、「 特殊 」をクリックして選択範囲をさらに絞り込みます。スクリーンショットをご覧ください:
enable Go To dialog, and click Special

2. 「 移動 特殊 」ダイアログボックスで、「 空白 」オプションをチェックし、「 OK」をクリックします。このステップでは、選択範囲内のすべての空のセルがハイライトされます。スクリーンショットをご覧ください:
check Blanks option in the dialog box

3. すべての空白セルが選択されたら、選択された空白のいずれかを右クリックし、「 削除 」を選択します。スクリーンショットをご覧ください:
 select Delete from the context menu

4. 「 削除 」ダイアログで、「 セルを左に移動 」オプションを選択し、「 OK」をクリックします。この操作により、すべてのデータが左に移動し、空白セルによって作られた以前のギャップがきれいに埋まります。スクリーンショットをご覧ください:
check Shift cells left option in the dialog box

これらのステップを完了すると、空白セルが削除され、残りのデータが左に移動されます。下記の例をご覧ください:

original data arrow right delete blank cells and move data left
この手動選択および削除方法は、中規模のデータセットを迅速に編集するのに理想的であり、即座に目に見える結果を得ることができます。ただし、注意すべき点として、範囲に結合されたセルが含まれている場合、この方法ではエラーが発生する可能性があり、また、セルに関連付けられた数式がある場合、セルを削除すると計算参照に影響を与えることがあります。変更を確定する前に、必ずデータ構造を確認してください。

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コードを挿入した後、「 Run button 」ボタンをクリックするか、 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はお好みの言語で利用可能 ― 英語、スペイン語、ドイツ語、フランス語、中国語、その他40以上の言語に対応!

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