文字列の空白削除の方法は、エクセル関数がありますが、関数を使用しなくても簡単に削除できます。
この記事では、エクセルのPower Query(パワークエリ)使用して、文字列の前後および文字間の空白やスペースを削除する方法を詳しく説明します。
はじめに文字列前後の空白削除の方法を説明します。次に、文字列間の空白削除方法を説明します。
仕事で渡されたcsvデータに大量の空白行が入っていると作業途中で気づきました。データ量が多かったこともあり、エクセルの関数ではなく、パワークエリで削除しました。
関数を使わない方法で文字列前後の空白を削除する方法
作業前のデータです。C列には、文字の前後と文字間に空白が入っています。

テーブル設定
まずはじめにテーブル設定をします。この方法は別記事でも掲載しているので、簡単に説明します。
データ範囲を選択し、[挿入]>[テーブル]をクリックします。

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

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

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

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

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

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

→ 結果

確認

- E列:作業前の文字数
- F列:作業後の文字数
文字列の間の空白を削除する方法
まずは、全角と半角の空白1文字を削除する方法です。これは非常に簡単です。
文字間の空白1文字の削除方法
文字列前後の空白削除で使用したテーブルを使います。画面右側にあるクエリと接続より、「全データ」をダブルクリックします。もしくは、右クリックより、編集を選びます。

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

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

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

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

「データ」タブから「テーブルまたは範囲から」を選択し、Power Queryエディターを開きます。テーブル名は「全データ_1」です。
[ホーム]タブの[詳細エディター]をクリックします。

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

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

Mコードについて
ソース = #"ソース",
ここは、もとから設定されているソースです。例では「ソース = Excel.CurrentWorkbook(){[Name="全データ_1"]}[Content],」です。
let
ソース = #"ソース",
半角空白削除 = Table.ReplaceValue(ソース, " ", "", Replacer.ReplaceText, {"名前"}),
全角空白削除 = Table.ReplaceValue(半角空白削除, " ", "", Replacer.ReplaceText, {"名前"})
in
全角空白削除
このコードは、指定した文字以外を取り除くことで、空白を削除しています。「Text.Select」関数を使用して、保持したい文字を指定し、それ以外の文字を取り除いています。
まとめ
この記事では、Power Queryを使用して文字列の前後および文字間にある空白やスペースを削除する方法について説明しました。
これらの方法を使用して、データのクレンジングを効率的に行うことができます。ぜひ試してみてください。