Power Apps の Split 関数
テキスト文字列をサブストリングのテーブルに分割します。
内容
Split 関数はテキスト文字列をサブストリングのテーブルに分割します。 コンマ区切りのリストや、間にスラッシュが使用されている日付、その他適切に定義された区切り記号が使用されている状況で分割を行う場合に Split を使用します。
区切り記号文字列はテキスト文字列を分割するために使用します。 区切り記号は 0、1、またはテキスト文字列全体で整合するその他の文字になります。 長さ 0 または空の文字列を使用すると、すべての文字が 1 つずつ分割されます。 一致する区切り文字は、結果に返されません。 区切り記号の一致が見つからない場合、テキスト文字列全体が 1 つの結果として返されます。
文字列 (区切り記号なし) を再結合するには、Concat 関数を使用します。
正規表現を使用して文字列を分割するには、MatchAll 関数を使用します。
例では、Split 関数と、 First および Last 関数を一緒に使用してどのように単一の区切られたサブストリングを抽出するかを示しています。 Match 関数は多くの場合、正規表現に慣れている方にとってより簡潔で強力な選択肢です。
構文
Split( Text, Separator )
- Text - 必須。 分割するテキスト。
- Separator - 必須。 文字列の分割で使用する区切り記号。 0、1、またはそれ以上の文字を指定できます。
例
基本的な使用方法
計算式 | 内容 | 結果 |
---|---|---|
Split( "Apples, Oranges, Bananas", "," ) |
コンマ区切り記号に基づき、それぞれの果物が分割されます。 分割はコンマに基づいて実行され、その後のスペースには基づきません。そのため、「Oranges」 および 「Bananas」 のように前にスペースが入ります。 | ![]() |
TrimEnds( Split( "Apples, Oranges, Bananas", "," ) ) |
前の例と同じですが、この場合は Split により生成される単一の列テーブルに対して動作している TrimEnds 関数 によってスペースが削除されています。 コンマの後のスペースを含む区切り記号 ", " も使用できますが、スペースがない場合やスペースが 2 つある場合には正しく動作しません。 | ![]() |
Split( "08/28/17", "/" ) |
区切り記号としてスラッシュを使用して、日付を分割します。 | ![]() |
異なる区切り文字
式 | 内容 | 結果 |
---|---|---|
Split( "Hello, World", "," ) |
区切り記号としてコンマを使用して、単語を分割します。 2 番目の結果には、前にスペースが含まれています。この結果がコンマの直後の文字であるためです。 | ![]() |
Split( "Hello, World", "o" ) |
文字 "o" を区切り記号として使用して、文字列を分割します。 | ![]() |
Split( "Hello, World", "l" ) |
単一の文字 "l" を区切り記号として使用して、文字列を分割します。 Hello の 2 つの l の間には文字がないため、空白の値が返されています。 | ![]() |
Split( "Hello, World", "ll" ) |
二重文字 "ll" を区切り記号として使用して、文字列を分割します。 | ![]() |
Split( "Hello, World", "%" ) |
パーセント記号を区切り記号として使用して、文字列を分割します。 この区切り記号は文字列に表示されないため、文字列全体が 1 つの結果として返されます。 | ![]() |
Split( "Hello, World", "" ) |
空の文字列 (ゼロ文字) を区切り記号として使用して、文字列を分割します。 これにより、文字列の各文字が分割されます。 | ![]() |
サブストリング抽出
式 | 内容 | Result |
---|---|---|
First( Split( Last( Split( "Bob Jones <bob.jones@contoso.com>", "<" ) ).Result, ">" ) ).Result |
開始区切り文字 (<) に基づいて文字列を分割し、Last を持つ区切り文字の右側にある文字列を抽出します。 次に、計算式は、終了区切り文字 (>) に基づいてその結果を分割し、Right 区切り文字の左側の文字列を抽出します。 | "bob.jones@contoso.com" |
Match( "Bob Jones <bob.jones@contoso.com>", "<(?<email>.+)>" ).email |
最後の例と同じ区切り記号ベースの抽出を実行しますが、Match 関数と正規表現を代わりに使用します。 | "bob.jones@contoso.com" |