Power Query M: Text 関数によりテキスト データを処理する

Power Query でデータを処理する場合、テキスト データに関する非常に困難なケースに必ず遭遇します。分析前にテキスト データを処理する必要があるケースを理解することで、データ分析がさらに強力になります。
この記事では、テキスト データの前処理が必要になる一般的なケースを紹介します。

①テキストデータをクレンジングします
テキスト データには、スペル ミス、タイプミス、標準外の略語などのノイズが含まれる場合があります。これにより、データの正確な分析と洞察の抽出が困難になる可能性があります。
Text 関数を使用して、クレンジングし、不要な文字を削除し、データ セット内の一貫性を確保します。
例:
Text.Trim:テキスト値 から先頭と末尾の空白をすべて削除した結果を返します。
Text.Lower:すべての文字を小文字に変換した結果を返します。
Text.Upper: すべての文字を大文字に変換した結果が返されます。
Text.Clean: 制御文字をすべて削除したテキスト値を 1 つ返します。

② テキスト値から必要な情報の抽出
分析用、または別の処理プロセスの入力として使用するために日付、数値、キーワードなど、テキストから特定の詳細を抽出します。

例:Text.End 関数で[dc:identifier]列のテキストデータから数値部分を抽出します。
構文: Text.End(text as nullable text, count as number) as nullable text
説明:text 値 text の最後の count 文字である text 値を返します。

以下は使用されるPower Query コードです。
Text.End([#"dc:identifier"], 11)

③ テキストの結合: 複数のテキストを連結して、意味のある新しい列またはラベルを作成します。
例:[users.firstName]列、[users.lastName]列から[emai]列を作成します。


Text.Combine関数を利用します。
構文:Text.Combine(texts as list, optional separator as nullable text) as text
説明:テキスト値 texts のリストを単一テキスト値に結合した結果を返します。結合した最終的なテキストで使用される省略可能な separator を指定できます。

以下は使用されるPower Query コードです。
この例では、Text.Combine 関数が 2 回使用されています。
1回目は、Text.Lower関数により小文字に変換された値[users.firstName][users.lastName]をドットで区切って結合します。
次に、上記で取得した値と@mediafusion.co.jp電子メール ドメインの値を結合します。

Text.Combine({Text.Combine({Text.Lower([users.firstName]), Text.Lower([users.lastName])}, "."), "@mediafusion.co.jp"}))