[Power Query] PowerBIで半角・全角文字を変換

ブログのアイキャッチ。 PowerBIで半角・全角文字を変換

このページでは、PowerBIでテキストデータの半角全角を変換するデータクレンジングの方法を紹介します。
数字やアルファベットだけでなく、記号も同時に変換できる方法を記載しています。
本記事では、紹介する方法はPower Queryを活用して変換を行うので、Excelでも対応できます。

目次

半角全角の変換方法

データ分析において、テキストデータのデータクレンジングは極めて重要です。特に、半角と全角の文字を適切に扱うことは、データの品質を保つ上で不可欠であり、後の集計や分析作業に大きな影響を与えます。

本記事では、PowerBIで半角と全角の文字を一括で変換する方法を詳しく解説します。

Power BIでの変換方法

Power BIで使用することができるDAX関数の中には、テキストデータの半角、全角を変換するための関数は用意されていません。そのためDAX関数による変換ではなく、Power Queryで変換を行うカスタム関数を作成して変換処理を行います。

Power Queryでカスタム関数を作成

先ずはカスタム関数の作成方法を説明します。データの変換から、Power Query エディターでを開きます。
Power Query エディターで画面左側のクエリ画面で右クリックし、新しいクエリ空のクエリを選択し、クエリ1を作成します。

空のクエリの作成方法。
空のクエリが作成できた画面。

作成したクエリ1を選択し、詳細エディターをクリック。詳細エディター画面を表示します。

詳細エディターのボタンの位置。
詳細エディター画面。

詳細エディター内に半角、全角を変換するクエリを記述します。
下記は、全角を半角に変換するテンプレートになります。

(initialValue) =>

let
    text_full_half = List.Zip(
        {
            List.Combine( { { Character.FromNumber(0x3000) }, { "!".."~" } } ),
            List.Combine( { { Character.FromNumber(0x20) }, { "!".."~" } } )
        }
    ),
    textList = List.ReplaceMatchingItems(
        Text.ToList(initialValue),
        text_full_half
    )
in
    Text.Combine(textList)
詳細エディターの入力内容。

入力して完了ボタンをクリックし、全角を半角に変換するカスタム関数を作成することができました。 

カスタム関数の作成完了後の画面。

半角を全角に変換するクエリ式は下記になります。
あまり活用することはないかもしれませんが。必要な場合は、同様に詳細エディターに記述してカスタム関数を作成してください。

(initialValue) =>

let
    text_full_half = List.Zip(
        {
            List.Combine( { { Character.FromNumber(0x20) }, { "!".."~" } } ),
            List.Combine( { { Character.FromNumber(0x3000) }, { "!".."~" } } )
        }
    ),
    textList = List.ReplaceMatchingItems(
        Text.ToList(initialValue),
        text_full_half
    )
in
    Text.Combine(textList)

カスタム関数でサンプルデータを変換

下記のような半角、全角が混在したサンプルデータに対して、作成したカスタム関数を使用して変換を行い、確認を行ってみます。

サンプルデータの紹介。

変換したい列を選択し、カスタム関数の呼び出しをクリック。

カスタム関数を使用して、半角文字のデータ列を新しく作成します。列名を記入し、関数クエリは作成したクエリを選択。

カスタム関数の呼び出し設定画面。
サンプルデータの半角への変換結果。

OKボタンのクリックで、全データを半角に変換できました。

上で紹介したクエリを使えば全角にも変換できます。

サンプルデータの全角への変換結果。

変換方法をカスタム関数として準備しているので、変換したい列が複数ある場合であっても、カスタム関数の呼び出しだけで対応できるので、効率よく変換処理を行うことができると思います。

変換の仕組み

基本的には、半角文字、全角文字を1対1の関係でList.ReplaceMatchingItems関数を使用して置き換える処理を行っています。英数字、記号の半角、全角でそれぞれリスト化したものを引数としています。

まとめ

  • DAX関数を使用して変換を行う処理は現状できない。
  • Power Queryでカスタム関数を作成して、変換処理する方法を紹介した。
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

技術系職社会人:業務でPowerBI を活用/データ分析/インドア派/趣味:ゲーム、カプセルトイ収集/[III]Mosnterが好き/勉強中:Blender/日々習得した内容をアウトプットしていきます!

目次