Excelで空白行をPower Queryで安全に削除する方法|消えない原因・戻し方・代替策まで

Excelで空白行をPower Queryで安全に削除したいなら、最初に押さえるべきことは1つです。完全に空の行だけを消したいなら「空の行の削除」、特定の列が空の行を落としたいなら列フィルターの「空の削除」を使います。ここを取り違えると、必要なデータまで消しやすくなります。Power Queryは元のワークシートを直接削除するのではなく、変換結果を別で読み込む仕組みなので、やり直しや更新にも強いのが利点です。 (Microsoft サポート)

この記事では、Excelで空白行をPower Queryで安全に削除する基本手順、失敗しやすいポイント、戻し方、代替策まで、実務でそのまま使える形で整理します。

目次

まず結論:迷ったらこの基準で選ぶ

やりたいこと使う機能判定する範囲向いているケース
完全に空の行だけ削除したい[ホーム] > [行の削除] > [空の行の削除]行全体CSVや帳票を取り込んだ後の空行整理
キー列が空の行を削除したい列のフィルター > [空の削除]選んだ1列受注番号、顧客ID、メールアドレスが空の行を除外したい
先頭や末尾の不要行を消したい[上位の行の削除] / [下位の行の削除] / [行の範囲を保持]行位置レポート型のデータ、注記行、見出し行の整理

Microsoftの説明でも、列フィルターの「空の削除」は選択した列だけを見て判定し、「空の行の削除」は行全体を見て判定します。安全に進めたいなら、まずは「完全に空の行だけ消したいのか」「キー列が空なら不要なのか」を決めてから操作してください。 (Microsoft サポート)

Power Queryで空白行を削除する前に知っておきたい前提

Power Queryは、元データを直接いじるのではなく、変換手順を記録して結果をワークシートやデータモデルに読み込む仕組みです。元のデータシートはそのまま残るので、「まず試して、違ったら戻す」がやりやすいのが大きなメリットです。Power Query自体はExcel for Windows、Excel for Mac、Excel for the Webで利用できますが、画面名は環境によって多少違うことがあります。 (Microsoft サポート)

元データが普通のセル範囲なら、まずその範囲内のセルを選んで [データ] > [テーブル/範囲から] で取り込みます。必要なら、先に Ctrl + T でExcelテーブル化しておくと扱いやすくなります。取り込み時に「先頭行を見出しとして使用」するかの確認が出たら、見出しが正しければそのまま進めて構いません。 (Microsoft サポート)

実務では、元データのシートとPower Queryの結果シートを別名にしておくのが安全です。たとえば Data と QueryResult のように分けておくと、更新時に間違ったシートを編集しにくくなります。Microsoftも、元データのワークシートとクエリ結果のワークシートを区別しやすい名前にすることを勧めています。 (Microsoft サポート)

Excelで空白行をPower Queryで安全に削除する基本手順

完全に空の行だけを削除したいなら、手順は次の流れで進めるのがいちばん確実です。

  1. 元データの表の中を1セル選び、[データ] > [テーブル/範囲から] をクリックします。Power Queryエディターが開きます。 (Microsoft サポート)
  2. 取り込み時にテーブル作成ダイアログが出たら、対象範囲と「先頭行を見出しとして使用」を確認してOKします。 (Microsoft サポート)
  3. Power Queryエディターで、[ホーム] > [行の削除] > [空の行の削除] を選びます。これで、行全体が空のものだけが対象になります。 (Microsoft サポート)
  4. 右側の [クエリ設定] > [適用されたステップ] に新しいステップが追加されたことを確認します。Power Queryは操作をステップとして記録するので、後から戻しやすいのが特徴です。 (Microsoft サポート)
  5. 問題なければ、[ホーム] > [閉じて読み込む] でExcelへ戻します。通常、単一クエリは新しいワークシートへ読み込まれます。 (Microsoft サポート)
  6. 元データに行が増えたら、読み込んだ結果テーブル側を選んで [クエリ] > [更新]、または [すべて更新] を実行します。作成済みの変換は自動で再適用されます。 (Microsoft サポート)

このやり方が安全なのは、元の表の行を直接削除しないからです。空白行を消したいだけなのに元データを壊したくない、毎月同じ処理を繰り返したい、という場面では、手作業で削除するよりPower Queryのほうが安定します。 (Microsoft サポート)

「空の行の削除」と列フィルターの「空の削除」は何が違うのか

この2つの違いを理解していないと、Power Queryで空白行を削除したつもりが、実は必要な行まで消してしまいます。

たとえば、次のような表を考えてみてください。

受注番号商品名金額備考
1001ノートPC120000
後日確認
1002マウス3000

このとき、「空の行の削除」 を使うと、2行目だけが消えます。3行目は備考に文字が入っているので、「行全体が空」とはみなされません。逆に、受注番号列のフィルターで「空の削除」 を使うと、2行目だけでなく3行目も消えます。受注番号列だけを見れば、どちらも空だからです。 (Microsoft サポート)

つまり、判断基準はこうです。

  • 完全な空行だけ消したい
    → 「空の行の削除」
  • この列が空なら不要、と決めている
    → その列で「空の削除」

初心者ほど「空の削除」という言葉だけを見て列フィルターを使いがちですが、実務では判定に使う列を決めずに列フィルターを使うのがいちばん危険です。受注番号や顧客IDのような必須列があるなら列フィルター、そうでないならまず「空の行の削除」から始めるのが無難です。 (Microsoft サポート)

実務で失敗しない「空白判定」の決め方

Power Queryで安全に削除するコツは、機能名ではなく何を空白とみなすかを先に決めることです。

データの種類空白判定に使う列理由
受注データ受注番号、受注日、金額備考やメモは空でも正常なことが多い
顧客一覧顧客ID、メールアドレス電話番号や住所は未入力でも有効行になりうる
問い合わせ管理チケット番号、受付日時対応メモは後から埋まることがある
日報・作業記録日付、担当者、作業内容コメント欄は任意入力になりやすい

この基準を決めずに「見た目でなんとなく空っぽだから削除」とやると、メモだけ先に入った行、後日更新予定の行、担当者が一時的に未入力の行まで落としやすくなります。Power Queryは便利ですが、削除の精度は操作前の判断でほぼ決まると思ってください。

空白行が消えないときによくある原因

見た目は空なのに、実はスペースや文字が残っている

「空の行の削除」は、公式の式を見ると "" と null を空として扱う考え方です。そこから考えると、半角スペース・全角スペース・不要文字だけが入っているセルは、見た目が空でも残る可能性があります。そういうときは、該当列を先にトリムして前後スペースを削ってから判定すると改善しやすいです。これは特に、他システムから貼り付けたデータで起きやすい問題です。 (Microsoft サポート)

帳票の見出し行や注記行は「空白行」ではない

PDF由来の表、印刷用レポート、会計システムの出力では、先頭にタイトル行、末尾に注記行が付いていることがあります。これらは空白行ではないので、「空の行の削除」では消えません。こうしたデータは、[上位の行の削除]、[下位の行の削除]、[行の範囲を保持] を先に使うほうがきれいに整います。 (Microsoft サポート)

元データを更新したのに結果が変わらない

Power Queryは、元データを書き換えた瞬間に常に自動反映されるわけではありません。元データを追加・修正したあとに、結果テーブル側で [更新] か [すべて更新] を実行する必要があります。また、Microsoftの案内でも、編集すべきなのはPower Queryの結果シートではなく元のデータシートだと注意されています。 (Microsoft サポート)

「削除したのに元シートの行が消えていない」は正常

Power Queryは、元データを直接削除する道具ではありません。あくまで取り込んだデータを整形して結果を作る機能です。元シートそのものから空白行を物理的に消したいなら、Power Queryの結果を使うか、別の手段で元表を整理する必要があります。安全性を優先するなら、元表は残し、整形済みテーブルを業務で使う運用にしたほうがトラブルが少なくなります。 (Microsoft サポート)

間違えたときの戻し方

Power Queryで空白行を削除する方法が安全と言われる理由の1つが、操作をステップ単位で戻せることです。

戻し方はシンプルです。

  1. 読み込み済みの結果テーブルを選んで [クエリ] > [編集] を開くか、[データ] > [クエリと接続] から対象クエリを編集します。 (Microsoft サポート)
  2. 右側の [クエリ設定] > [適用されたステップ] で、空白行削除に対応するステップを削除します。Microsoftの説明でも、「空の行の削除」で作られたフィルターは、対応するステップを消せば解除できます。 (Microsoft サポート)
  3. プレビューを確認して問題なければ、[閉じて読み込む] でExcelへ戻します。各ステップを選ぶと、その時点のプレビューを確認できます。 (Microsoft サポート)

不安なら、いきなり複雑な条件を入れず、1ステップずつ追加して確認してください。Power Queryは試行錯誤しやすい設計なので、うまくいかないステップだけ消してやり直すのが基本です。 (Microsoft サポート)

UIだけで足りないときの代替策

「完全空行だけ」でも「特定1列だけ」でも足りない場面があります。たとえば、受注番号・商品コード・数量の3列が全部空なら不要、でも備考列は空白判定から外したい、というケースです。

その場合は、Power Queryの公式の考え方を応用して、判定対象を必要な列だけに絞る方法が実用的です。たとえば、次の式なら「受注番号・商品コード・数量の3列がすべて空なら除外」という動きになります。 (Microsoft サポート)

= Table.SelectRows(#"Changed Type", each not List.IsEmpty(List.RemoveMatchingItems({[受注番号],[商品コード],[数量]}, {"", null})))

使いどころは次のような場面です。

  • 備考やコメント列は空でも正常
  • 必須項目が複数あり、それらが全部空なら不要
  • 帳票から取り込んだ行のうち、業務データ列だけで判定したい

初心者なら、まずはUIの「空の行の削除」と「空の削除」の使い分けを覚え、それで足りないときだけこのような式に進むのが現実的です。

迷ったら、この順で進めれば失敗しにくい

Excelで空白行をPower Queryで安全に削除したいときは、次の順番で判断するとほぼ迷いません。

  1. 本当に完全空行だけを消したいのか を決める
  2. 完全空行だけなら [空の行の削除] を使う
  3. 必須列が空の行を除外したいなら、その列で [空の削除] を使う
  4. 帳票型データなら、先に 上位/下位の行の削除 や 行の範囲を保持 を検討する
  5. 消えない行があるなら、スペースや不要文字を疑う
  6. 最後に 更新 まで試して、毎回同じ結果になるか確認する (Microsoft サポート)

まずは元データをテーブル化し、Power Queryで [空の行の削除] を1回試してください。そこで結果が想定どおりなら、そのまま更新運用に乗せれば終わりです。もし必要な行まで消える、逆に消したい行が残るなら、次に「どの列を基準に空白とみなすか」を決めて列フィルターや条件式に切り替える。この順番なら、無駄なやり直しをかなり減らせます。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次