Power Apps での Concat および Concatenate 関数
テキストの個々の文字列とテーブル 内の文字列を連結します。
内容
Concatenate 関数は、個々の文字列の組み合わせおよび文字列の単一列テーブルを連結します。 個々の文字列を用いてこの関数を使用する場合、&演算子 を使用するのと同等になります。
Concat 関数は、テーブルのすべてのレコード にまたがって適用される数式の結果を連結し、単一の文字列にします。 この関数は、Sum 関数が数値に対して行うのと同じように、テーブルの文字列を要約するために使用します。
現在処理されているレコードのフィールドは、この数式内で使用できます。 ThisRecord 演算子を使用するか、他の値を参照するのと同様に名前でフィールドを参照します。 As 演算子を使用して処理対象のレコードを指定することもできます。そうすると数式がわかりやすくなり、入れ子になったレコードにアクセスしやすくなります。 詳細については、以下の例と「レコードのスコープに関する作業」を参照してください。
文字列を部分文字列テーブルに分割するには、Split または MatchAll 関数を使用します。
構文
Concat (テーブル、数式、区切り記号)
- Table - 必須。 操作の対象となるテーブル。
- Formula - 必須。 テーブルのレコードにまたがって適用する数式。
- Separator - オプション。 テーブルの連結された行の間に挿入されるテキスト値です。
Concatenate( String1 [, String2, ...] )
- String(s) - 必須。 個々の文字列の組み合わせまたは文字列の単一列テーブル。
例
このセクションの例は、次のグローバル変数を使用します:
- FirstName = "Jane"
- LastName = "Doe"
- 製品 =
アプリでこれらのグローバル変数を作成するには、Button コントロールを挿入し、OnSelect プロパティを次の数式に設定します:
Set( FirstName, "Jane" ); Set( LastName, "Doe" );
Set( Products,
Table(
{ Name: "Violin", Type: "String" },
{ Name: "Cello", Type: "String" },
{ Name: "Trumpet", Type: "Wind" }
)
)
(Alt キーを押しながらクリックして) ボタンを選択します。
Concatenate 関数および & 演算子
これらの例では、Label コントロールの Text プロパティを、次のテーブルの最初の列の数式に設定します。
計算式 | 内容 | 結果 |
---|---|---|
Concatenate( LastName, ", ", FirstName ) | LastName の値、文字列である ", " (コンマの後にスペースが続く)、および FirstName の値を連結します。 | "Doe 、Jane" |
LastName & ", " & FirstName | 関数の代わりに & 演算子を使用していることを除き、前の例と同じです。 | "Doe 、Jane" |
Concatenate( FirstName, " ", LastName ) | FirstName の値、文字列である " " (単一のスペース)、および LastName の値を連結します。 | "Jane Doe" |
FirstName & " " & LastName | 前の例と同じで、関数の代わりに & 演算子を使用しています。 | "Jane Doe" |
単一列テーブルと連結
この例では、空白で、垂直の Gallery コントロールを追加し、その Items プロパティを次のテーブルの数式に設定し、次にギャラリー テンプレートにラベルを追加します。
計算式 | 内容 | 結果 |
---|---|---|
Concatenate( "Name: ", Products.Name, ", Type: ", Products.Type ) | 製品テーブルの各レコードで、文字列である Name、製品の名前、文字列である Type および製品の種類を連結します。 | ![]() |
Concat 関数
これらの例では、ラベルの Text プロパティを次のテーブルの最初の列の数式に設定します。
式 | 説明設定 | Result |
---|---|---|
Concat( Products, Name & ", " ) | 製品の各レコードに対して式である Name & ", " が評価され、結果を単一の文字列に連結します。 | "Violin, Cello, Trumpet, " |
Concat( Filter( Products, Type = "String" ), Name & ", " ) | フィルターである Type = "String" を満たす製品の各レコードに対して式である Name & ", " が評価され、結果を単一の文字列に連結します。 | "Violin, Cello, " |
末尾のトリミング
最後の 2 つの例では、結果の最後に追加の ", " が含まれています。 関数は、最後のレコードを含むテーブル内のすべてレコードの名前の値に、コンマおよびスペースを追加します。
場合によっては、これらの余分な文字は重要ではありません。 たとえば、結果をラベルに表示した場合、シングルスペースの区切り記号は表示されません。 これらの余分な文字を削除する場合は、Left もしくは Match 関数を使用します。
これらの例では、ラベルの Text プロパティを次のテーブルの最初の列の数式に設定します。
計算式 | 内容 | 結果 |
---|---|---|
Left( Concat( Products, Name & ", " ), Len( Concat( Products, Name & ", " ) ) - 2 ) | Concat の結果を返しますが、余分な区切り記号を形成する最後 2 文字は削除されます。 | "Violin, Cello, Trumpet" |
Match( Concat( Products, Name & ", " ), "^(?<trim>.*), $" ).trim | Concat の文字をテキスト文字列 (^) の先頭から末尾 ($) に返しますが、末尾に不要なコンマおよびスペースは含まれません。 | "Violin, Cello, Trumpet" |
Split および MatchAll
区切り記号で Concat を使用した場合、Split および MatchAll 関数を組み合わせることにより操作を逆にできます。
これらの例では、空白で、垂直のギャラリーを追加し、その Items プロパティを次のテーブルの数式に設定し、次にギャラリー テンプレートにラベルを追加します。
計算式 | 内容 | 結果 |
---|---|---|
Split( Concat( Products, Name & ", " ), ", " ) | 区切り記号 ", " でテキスト文字列を分割します。 文字列はコンマおよびスペースで終わるため、結果の最後の行は空の文字列です。 | ![]() |
MatchAll( Concat( Products, Name & ", " ), "[^\s,]+" ).FullMatch | スペースまたはコンマではない文字に基づいてテキスト文字列を分割します。 この数式は、文字列の末尾にある余分なコンマおよびスペースを削除します。 | ![]() |