このページでは、Power Queryでデータクレンジングを行う際に活用する文字列関数の一覧を表示します。
各関数のサンプルとテキストデータの処理結果を表示しています。
Powe BIやPower Queryでテキストデータを操作する場合に活用できると思います。
テキスト関数
Power Queryの文字列関数のページで一覧が表示されていますが関数の説明の日本語訳が怪しいので、私なり分かりやすく記載しなおしています。Powe BIやPower Queryの勉強する際に活用してただければ幸いです。
- Power Queryでは、テキストの文字の位置は0からカウントすることに注意が必要になります。
- テキストを操作する際に、基準となる位置などはNで表記しています。
テキストの抽出
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”