[Power Query] テキスト関数を使用したデータクレンジング

ブログのアイキャッチ。テキスト関数を使用したデータクレンジング

このページでは、Power Queryでデータクレンジングを行う際に活用する文字列関数の一覧を表示します。
各関数のサンプルとテキストデータの処理結果を表示しています。
Powe BIやPower Queryでテキストデータを操作する場合に活用できると思います。

目次

テキスト関数

Power Queryの文字列関数のページで一覧が表示されていますが関数の説明の日本語訳が怪しいので、私なり分かりやすく記載しなおしています。Powe BIやPower Queryの勉強する際に活用してただければ幸いです。

  • Power Queryでは、テキストの文字の位置は0からカウントすることに注意が必要になります。
  • テキストを操作する際に、基準となる位置などはNで表記しています。
Power Queryの勉強をしているメージ画像。

テキストの抽出

Text.At:N文字目を1文字抽出

Text.At(“ABCDE”, 4)
-> “E”

Text.Middle:N文字目から指定した文字数抽出

Text.Middle(“ABCDEFGHIJ”, 4, 5)
-> “EFGHI”

Text.Range:N文字目から文字数抽出

Text.Range(“ABCDEFGHIJ”, 4)
-> “EFGHIJ”
※文字列の終わりまで

Text.Range(“ABCDEFGHIJ”, 4, 5)
-> “EFGHI”
※第2引数で抽出する文字数を指定する。

Text.Start:最初から指定した文字数抽出

Text.Start(“ABCDEFGHIJ”, 4,)
-> “ABCD”

Text.End:最後から指定した文字数抽出

Text.End(“ABCDEFGHIJ”, 4,)
-> “GHIJ”

テキスト変更

Text.Insert:N文字目にテキストを挿入

Text.Insert(“ABFGHIJ”, 2,”CDE”)
-> “ABCDEFGHIJ”

Text.Remove:指定した文字を削除

Text.Remove(“ABCDEFGHIJ”, {“A”,”B”,”C”})
-> “DEFGHIJ”

Text.RemoveRange:N文字目から指定した文字数削除

Text.RemoveRange(“ABCDEFGHIJ”, 2)
-> “ABDEFGHIJ”
※1文字のみ削除

Text.RemoveRange(“ABCDEFGHIJ”, 2, 2)
-> “ABEFGHIJ”
※削除する文字数を指定

Text.Replace:指定したテキストをすべて置換

Text.Replace(“ABCDEFGHIJ”, “AB”, “K”)
-> “KCDEFGHIJ”

Text.ReplaceRange:N文字目から指定した文字数を置換

Text.ReplaceRange(“ABCDEFGHIJ”, 2, 2, “KL”)
-> “ABKLEFGHIJ”

Text.Select:指定した範囲の文字以外削除

Text.Select(“A,B;C”, {“A”..”Z”})
-> “ABC”
※リストで指定するのは、アルファベットなどの連続したデータ。

テキストデータの情報検索

Text.Contains:指定したテキストが含まれるか判定

Text.Contains(“ABCDEFGHIJ”, “ABC”)
-> true

Text.Contains(“ABCDEFGHIJ”, “abc”)
-> false
※大文字小文字を区別します

Text.EndsWith:末尾が指定したテキストか判定

Text.EndsWith(“ABCDEFGHIJ”, “GHIJ”)
-> true
※大文字小文字を区別します。

Text.PositionOf:指定したテキストが始まる場所を返す

Text.PositionOf(“ABCDEFGHIJ”, “GHIJ”)
-> 6

Text.PositionOf(“ABCABCABC, “ABC”,Occurrence.Last)
-> 6
※最後の出現位置を返す。

Text.PositionOfAny:リストで指定したテキストが始まる場所を返す

Text.PositionOfAny(“ABCDEFGHIJ”, {“A”,”B”})
-> 0
※最初の位置を返す。

Text.PositionOfAny(“ABCDEFGHIJ”, {“A”,”B”}, Occurrence.All))
-> {0,1}
※すべての位置をリストで返す。

Text.StartsWith:先頭が指定したテキストか判定

Text.EndsWith(“ABCDEFGHIJ”, “ABC”)
-> true
※大文字小文字を区別します。

テキスト変換

Text.AfterDelimiter 区切り文字の後のテキストを抽出

Text.AfterDelimiter(“ABC:DEF:GHI:J”, “:”)
-> DEF:GHI:J

Text.AfterDelimiter(“ABC:DEF:GHI:J”, “:”,1)
-> GHI:J
※引数を使用して2番目以降の区切り文字を選択。

Text.AfterDelimiter(“ABC:DEF:GHI:J”, “:”,{1, RelativePosition.FromEnd})
-> GHI:J
※最後の引数を基準とする場合。

Text.BeforeDelimiter 区切り文字の前のテキストを抽出

Text.BeforeDelimiter(“ABC:DEF:GHI:J”, “:”)
-> “ABC”

Text.BeforeDelimiter(“ABC:DEF:GHI:J”, “:”,1)
-> “ABC:DEF”

Text.BeforeDelimiter(“ABC:DEF:GHI:J”, “:”,{1, RelativePosition.FromEnd})
-> “ABC:DEF”

Text.BetweenDelimiters 指定した2つの区切り文字の間のテキストを抽出

Text.BetweenDelimiters(“ABC(DEF)GHI(J)”, “(“, “)” )
-> “DEF”
※先頭からを抽出

Text.BetweenDelimiters(“ABC(DEF)GHI(J)”, “(“, “)”,0 ,1 )
-> “DEF)GHI(J”
※区切り文字が複数ある場合、引数で指定。
 例では1番目(0)の”(“と2番目(1)の”)”を指定。

Text.BetweenDelimiters(“ABC(DEF)GHI(J)”, “(“, “)”,{1, RelativePosition.FromEnd}, {1, RelativePosition.FromStart})
-> “DEF)GHI(J”
※区切り文字が複数ある場合、最期を基準に引数で指定。

Text.Clean 制御文字の削除

Text.Clean(“ABCD#(lf)DEF”)
-> “ABCDEF”

Text.Combine 2つのテキストを結合

Text.Combine({“ABC”, “DEF”})
-> “ABCDEF”

Text.Lower テキストを小文字に変換

Text.Lower(“ABCD”)
-> “abcd”

Text.PadEnd テキスト末尾を埋めて指定数の文字数に変換

Text.PadEnd(“ABC”, 5)
-> “ABC “

Text.PadEnd(“ABC”, 5, “X”)
-> “ABCXX”

Text.PadStart テキスト先頭を埋めて指定数の文字数に変換

Text.PadStart(“ABC”, 5)
-> ” ABC”

Text.PadStart(“ABC”, 5, “X”)
-> “XXABC”

Text.Proper 各単語の最初の文字のみ大文字に変換

Text.Proper(“abc DEF gHK”)
-> “Abc Def Ghk”

Text.Repeat テキストを指定回数繰り返す

Text.Repeat(“ABC”, 3)
-> “ABCABCABC”

Text.Reverse テキストの反転

Text.Reverse(“ABCD”)
-> “DCBA”

Text.Split 区切り文字で分割してリスト化

Text.Split(“ABC:DEF:HIJ”)
-> {“ABC”, “DEF”, “HIJ”}

Text.SplitAny 区切り文字で分割してリスト化

Text.SplitAny(“ABC:DEF:HIJ”)
-> {“ABC”, “DEF”, “HIJ”}

Text.Trim 先頭と末尾の空白を削除

Text.Trim(” A B C D “)
-> “A B C D”

Text.TrimEnd 末尾の空白を削除

Text.TrimEnd(” A B C D “)
-> ” A B C D”

Text.TrimStart 先頭の空白を削除

Text.TrimStart(” A B C D “)
-> “A B C D “

Text.Upper テキストを大文字に変換

Text.Lower(“abcd”)
-> “ABCD”

おまけ:型変換

データクレンジングでは、よくありる型変換も合わせて表示しておきます。

Number.FromText:テキスト値から数値に変換

Number.FromText(“123”)
-> 123

Number.ToText:数値からテキスト値に変換

Number.ToText(123)
-> “123”

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

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

目次