Power Apps での Concat および Concatenate 関数

テキストの個々の文字列とテーブル 内の文字列を連結します。

内容

Concatenate 関数は、個々の文字列の組み合わせおよび文字列の単一列テーブルを連結します。 個々の文字列を用いてこの関数を使用する場合、& 演算子 を使用するのと同等になります。

Concat 関数は、テーブルのすべてのレコード にまたがって適用される数式の結果を連結し、単一の文字列にします。 この関数は、Sum 関数が数値に対して行うのと同じように、テーブルの文字列を要約するために使用します。

現在処理されているレコードのフィールドは、この数式内で使用できます。 ThisRecord 演算子を使用するか、他の値を参照するのと同様に名前でフィールドを参照します。 As 演算子を使用して処理対象のレコードを指定することもできます。そうすると数式がわかりやすくなり、入れ子になったレコードにアクセスしやすくなります。 詳細については、以下の例と「レコードのスコープに関する作業」を参照してください。

文字列を部分文字列テーブルに分割するには、Split または MatchAll 関数を使用します。

構文

Concat (テーブル数式区切り記号)

  • Table - 必須。 操作の対象となるテーブル。
  • Formula - 必須。 テーブルのレコードにまたがって適用する数式。
  • 区切り文字- オプション。 テーブルの連結された行の間に挿入されるテキスト値です。

Concatenate( String1 [, String2, ...] )

  • 文字列 - 必須。 個々の文字列の組み合わせまたは文字列の単一列テーブル。

このセクションの例は、次のグローバル変数を使用します:

  • FirstName = "Jane"
  • LastName = "Doe"
  • 製品 = 2 つの列および 4 つの行のテーブル

アプリでこれらのグローバル変数を作成するには、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 プロパティを次のテーブルの最初の列の数式に設定します。

計算式 内容 結果
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 スペースまたはコンマではない文字に基づいてテキスト文字列を分割します。 この数式は、文字列の末尾にある余分なコンマおよびスペースを削除します。 3 行のみのテーブル。

注意

ドキュメントの言語設定についてお聞かせください。 簡単な調査を行います。 (この調査は英語です)

この調査には約 7 分かかります。 個人データは収集されません (プライバシー ステートメント)。