PowerBI

【Power BI入門】Power Queryで全角→半角変換する方法

ミムチ

困りましたぞ…

Power BIで取得したデータに、全角/半角文字が混在しておりますぞ!

パワ実

Power BIで全角文字→半角文字に変換するのは、少し大変ですが、Power Query等で変換できます。

この記事では、Power BIで取得した全角文字→半角文字に変換する方法を紹介します。

この記事でわかること
  1. Excel関数で全角→半角変換する方法
  2. Power BIで全角→半角変換する方法
  3. Power Queryのカスタム関数を使った変換方法

Excelで全角→半角変換する方法

Power BIを使わず、Excel上で全角→半角(英数カナ)に変換したい場合、「ASC関数」を使います。

以下のようにExcel関数式を使えば、簡単に全角→半角変換できます。

=ASC([@変換したい全角の列])

ASC関数で新しい変換後の列を作成すると、自動的に一番下まで式がコピーされます。

ミムチ

Excelでの全角→半角変換は、とても簡単ですな!

Power QueryでもASC関数と同様の関数を使えばよいのですかな?

パワ実

実は、Power Queryで使うM言語や、Power BIのDAXでは、ExcelのASC関数と同じ機能を持つ関数はありません…

Power Queryで全角→半角変換する方法

Power BIで取り込んだデータを全角→半角変換したい場合、Power QueryのM言語や、Power BIのDAX式を使う必要があります。

よくみるやり方として、「A、B、C…」→「A、B、C…」のように、対応表を使って変換する方法があります。

しかしそれだと少し大変なので、今回は簡単にUnicodeのコードポイントを変換して、全角→半角変換する方法を紹介します。

全角文字のデータを取り込む

1.Power BIで取得する全角データを含むExcelサンプルファイルを用意します。

2.Power BIで、対象のデータを取得します。

※今回は簡単にExcelブックで取り込みます

3.対象のデータを選択し、「データの変換」をクリックして、Power Queryエディタを開きます。

パワ実

Power Queryエディタが開いたら、データの変換をしてきましょう!

Power Queryでカスタム列を作成

1.Power Queryエディタの「列の追加」>「カスタム列」を選択します。

2.以下のようにカスタム列の式を入力し「OK」をクリックします。

Text.Combine(
    List.Transform(
        Text.ToList([OriginalText]),
        each Character.FromNumber(
            let n = Character.ToNumber(_)
            in if n >= 65281 and n <= 65374 then n - 65248 
                else n
        )
    ),
    ""
)

ちなみに、全角スペースも半角スペースに変換したい場合は、以下の式を使ってください。

Text.Combine(
    List.Transform(
        Text.ToList([OriginalText]),
        each Character.FromNumber(
            let n = Character.ToNumber(_)
            in if n = 12288 then 32 
               else if n >= 65281 and n <= 65374 then n - 65248 
               else n
        )
    ),
    ""
)

3.以下のように全角→半角に変換できました!

あとは「ホーム」>「閉じて適用する」でPower BIデスクトップにデータを反映します。

ミムチ

この式は、一体何をしているのですかな…?

パワ実

Unicodeでは、各文字に固有の数値(コードポイント)が割り当てられています。

半角と全角の対応する文字は、決まった数値分だけずれています。
たとえば半角の「A」はコードポイント65で、全角の「A」は65313です。
このとき、全角文字から65248を引くと、対応する半角文字のコードポイントになり、全角→半角変換できるというわけです。

4.レポートで、テーブル等に表示すれば、このように全角→半角変換されたデータが表示されます。

最後に

この記事では、Power BIで取得した全角文字データを、半角文字のデータに変換する方法を紹介しました。

Excelでは「ASC関数」を使うと簡単に全角→半角変換できますが、Power Queryでは直接的に全角→半角変換する関数はありません。

今回は、Power Queryでカスタム列を使い、Unicodeのコードポイントで、全角文字を「-65313」をすることで、全角→半角に変換する方法を解説しました。

ミムチ

とはいえ、Excelだけで使うなら、Excelの「ASC関数」を使うのが楽ですな。

パワ実

さらに言えば、データ入力時点で、全角/半角が混在しないように制御できた方がよいですね!

ABOUT ME
パワ実(Microsoft MVP)
2021年からPower Platform(Power BI、Power Apps、Power Automate)を勉強中。 2023年にIT系・コンサルタントに転職し、仕事でPower Platformを活用したコンサルを行っています。 2025年~Microsoft MVP for Business Applications 受賞 Power Platformを使っていく中で、知りえた情報をブログ、Youtube、Xで発信しています。 Power Platformに関するご相談は以下のページからお願いします! https://www.powerplatformknowledge.com/contact/

Power Platformのご依頼・ご相談について

Power Platformについてのご相談、お仕事のご依頼については、
こちらのお問い合わせページをご確認ください。