[Power BI] DAXでの半角スペース,全角スペースの処理(SEARCH,CONTAINSSTRING,SUBSTITUTE,FIND)

このページでは、DAX関数を使用してデータクレンジングや名寄せ作業でありがちな半角、全角スペースの処理に関してまとめています。
・使用する関数:SEARCH,CONTAINSSTRING,SUBSTITUTE,FIND

目次

ダミーデータの紹介

下記のような半角、全角スペースが入り混じったダミーデータを使用して、各関数のふるまいを確認してみます。

ダミーデータの紹介。苗字と名前の間にランダムに半角、全角が含まれている。

(種類列に苗字と名前の間に含まれるスペースの種類を記述していますが、関数の引数では使用しません。)

SEARCH関数

SEARCH関数を使用して、半角スペース、全角スペースが何文字目か割り出します。

search_半角 = SEARCH(" ",[Name]) //半角スペース
search_全角 = SEARCH(" ",[Name]) //全角スペース

結果

SEARCH関数の結果。

SEARCH関数は、半角、全角スペースの区別せず、何文字目か返してくれました。

CONTAINSSTRING関数

CONTAINSSTRING関数を使用して、半角スペース、全角スペースが何文字目か割り出します。

contain_半角 = CONTAINSSTRING([Name]," ") //半角スペース
contain_全角 = CONTAINSSTRING([Name]," ") //全角スペース

結果

CONTAINSSTRING関数の結果。

CONTAINSSTRING関数は、半角、全角スペースの区別せず、TRUEを返しました。

SUBSTITUTE関数

SUBSTITUTE関数を使用して、半角スペース、全角スペースを記号に変換します。

半角変換 = SUBSTITUTE([Name]," ","■") //半角スペース
全角変換 = SUBSTITUTE([Name]," ","■") //全角スペース

結果

SUBSTITUTE関数の結果。

SUBSTITUTE関数は、半角、全角スペースの区別して文字変換をしました。

FIND関数

FIND関数を使用して、半角スペース、全角スペースが何文字目か割り出します。
ここでは、対象のスペースが含まれていない場合は、-1を返すような引数を設定しています。

find_半角 = find(" ",[Name],1,-1) //半角スペース
find_全角 = find(" ",[Name],1,-1) //全角スペース

結果

FIND関数の結果。

FIND関数は、半角、全角スペースの区別して何文字目か返しました。

半角スペース、全角スペースの判定方法

FIND関数を使用して、Name列のスペースの種類を判定する方法を記載します。

判定 = 
    SWITCH(
TRUE(),
        FIND(" ",[Name],1,-1)>0,"半角",
        FIND(" ",[Name],1,-1)>0,"全角",
        "なし"
    )


データクレンジング、名寄せ処理の内容に応じて、関数の使い分けが重要になりそうです。

まとめ

  • 半角、全角スペースの区別しない
    SEARCH関数,CONTAINSSTRING関数
  • 半角、全角スペースの区別する
    SUBSTITUTE関数,FIND関数
すべての関数の結果の一覧。
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

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

目次