パワークエリで文字列の前後と文字間にある空白(スペース)を削除する方法

文字列の空白削除の方法は、エクセル関数がありますが、関数を使用しなくても簡単に削除できます。

この記事では、エクセルのPower Query(パワークエリ)使用して、文字列の前後および文字間の空白やスペースを削除する方法を詳しく説明します。

はじめに文字列前後の空白削除の方法を説明します。次に、文字列間の空白削除方法を説明します。

仕事で渡されたcsvデータに大量の空白行が入っていると作業途中で気づきました。データ量が多かったこともあり、エクセルの関数ではなく、パワークエリで削除しました。

目次

関数を使わない方法で文字列前後の空白を削除する方法

作業前のデータです。C列には、文字の前後と文字間に空白が入っています。

テーブル設定

まずはじめにテーブル設定をします。この方法は別記事でも掲載しているので、簡単に説明します。

STEP
テーブル設定

データ範囲を選択し、[挿入]>[テーブル]をクリックします。

STEP
テーブル名変更

そのままでも問題ありませんが、名前を変更しておくと、自分がわかりやすいのでおすすめ。

文字列前後の空白削除方法

C列にどのくらい空白が含まれているか、D列に文字数を表示しました。

STEP
Power Queryエディターの起動

「データ」タブから「テーブルまたは範囲から」を選択し、Power Queryエディターを開きます。

STEP
空白削除

パワークエリエディターが開いたら、空白を削除したい列を選択します。次に[変換]>[トリミング]をクリックします。

→ 文字列前後の空白が削除されました。

STEP
閉じて読み込む

そのまま次の作業もできますが、確認のため一度閉じます。

→ 結果

確認

  • E列:作業前の文字数
  • F列:作業後の文字数

文字列の間の空白を削除する方法

まずは、全角と半角の空白1文字を削除する方法です。これは非常に簡単です。

文字間の空白1文字の削除方法

STEP
Power Queryエディターの起動

文字列前後の空白削除で使用したテーブルを使います。画面右側にあるクエリと接続より、「全データ」をダブルクリックします。もしくは、右クリックより、編集を選びます。

STEP
値の置換を開く

[変換]タブ>[値の置換]>[値の置換]をクリックします。

STEP
値の置換

「検索する値」欄に全角スペース「 」を入力し、「置換後の値」欄は空白のままにして、「OK」をクリックします。

→ 全角空白のみ削除されます。半角の空白が残ります。上記と同じ方法で、次は半角スペースを削除します。

文字間の空白削除方法

以下のデータを例に説明します。C列には空白行が複数含まれています。

STEP
Power Queryエディターの起動

「データ」タブから「テーブルまたは範囲から」を選択し、Power Queryエディターを開きます。テーブル名は「全データ_1」です。

STEP
詳細エディターを使用してすべての空白を削除

[ホーム]タブの[詳細エディター]をクリックします。

Mコードを入力し、「完了」をクリックします。

→ 文字間の空白が削除されました。

Mコードについて

ソース = #"ソース",

ここは、もとから設定されているソースです。例では「ソース = Excel.CurrentWorkbook(){[Name="全データ_1"]}[Content],」です。

let
    ソース = #"ソース",
    半角空白削除 = Table.ReplaceValue(ソース, " ", "", Replacer.ReplaceText, {"名前"}),
    全角空白削除 = Table.ReplaceValue(半角空白削除, " ", "", Replacer.ReplaceText, {"名前"})
in
    全角空白削除

このコードは、指定した文字以外を取り除くことで、空白を削除しています。「Text.Select」関数を使用して、保持したい文字を指定し、それ以外の文字を取り除いています。

まとめ

この記事では、Power Queryを使用して文字列の前後および文字間にある空白やスペースを削除する方法について説明しました。

これらの方法を使用して、データのクレンジングを効率的に行うことができます。ぜひ試してみてください。

目次