Power AppsのConcat関数|コンボボックスの複数選択をメール宛先に変換する方法

コンボボックスで複数選択した値を1本の文字列にまとめたい。Concat関数を使えば、テーブルの内容をカンマ区切りや改行でつなぎ合わせられます。複数選択をメールのTo行に変換する場面でも活躍します。

ConcatとConcatenateの違い

Power Appsには文字列を結合する関数が2つあります。まず違いを整理しておきます。

関数対象用途
Concatenate複数の文字列(固定の値)"A" & "B" & "C" のような固定値の結合
Concatテーブルの各行コレクションやコンボボックスの選択値など、行数が変わるデータの結合

ほとんどの場面でConcatが必要になるのは、データの件数が実行時まで決まらないケースです。固定の2〜3個の文字列をつなぐだけなら、& 演算子で十分です。

Concatの基本構文

Concat関数の引数は3つです。

Concat(テーブル, 数式 [, 区切り文字])

第2引数には、各行に対して評価する数式を書きます。シンプルな例として、リスト内の全フルーツ名をカンマ区切りで結合するには次のように書きます。

Concat(["りんご","みかん","ぶどう"], Value, ", ")
// 結果:りんご, みかん, ぶどう

第3引数の区切り文字はPower Apps 2023年以降のバージョンから追加されたオプションです。古いバージョンでは区切り文字を数式の中に含める必要があります。

// 区切り文字引数がない場合の書き方
Concat(["りんご","みかん","ぶどう"], Value & ", ")
// 末尾に不要なカンマが残るため、後処理が必要

実例3パターン

コンボボックスの複数選択をPower Automateに渡す

コンボボックスで選択された担当者のメールアドレスをカンマ区切りで結合し、Power AutomateのHTTPリクエストや承認フローのTo行として渡す場面です。

Concat(ComboBox_Assignees.SelectedItems, Email, ";")

OutlookやTeamsの複数宛先はセミコロン区切りが一般的です。Power AppsからPower Automateのフローを呼び出す方法についてはこちらの記事で解説しています。Teams通知への活用はPower AutomateのTeams通知記事も参考にしてください。

コンボボックスの選択値でFilterをかける

コンボボックスで複数のカテゴリを選択し、そのいずれかに該当するデータをギャラリーに表示したい場合、ConcatとInを組み合わせます。

Filter(
    商品リスト,
    カテゴリ in ComboBox_Category.SelectedItems.Value
)

このケースではConcatではなくInを使うほうがシンプルですが、選択値を画面上に文字列として表示したいときはConcatが必要になります。ギャラリーの使い方はこちらの記事を参考にしてください。

コレクション内の値を改行でまとめる

承認フローなどで、選択されたアイテムの一覧をメモ欄にまとめて表示したい場面です。Char(10)で改行を挟みながらConcatで結合できます。

Concat(
    colSelectedItems,
    品名 & ":" & 数量 & "個",
    Char(10)
)

このようにして生成した文字列をPatchでSharePointの複数行テキスト列に保存することもできます。

よくある間違い:Concatの結果をテーブルと混同する

Concatはテーブルを受け取り、文字列を返します。Split(文字列をテーブルに変換)とは逆向きの関数です。ConcatとSplitを組み合わせると、テーブルと文字列を相互に変換できます。

// テーブル → 文字列
Concat(colItems, Value, ",")

// 文字列 → テーブル
Split("りんご,みかん,ぶどう", ",")

この2つの関係を覚えておくと、データの受け渡し場面で役立ちます。

まとめ

Concatは「テーブルを文字列に変換する関数」です。コンボボックスの複数選択をメール宛先にする、コレクションの内容をまとめて表示する、といった場面で繰り返し使います。

文字列を組み立てる別のアプローチとして、文字列補間という構文もあります。$"..." を使ったシンプルな書き方についてはこちらの記事をご覧ください

Power Appsのその他のテキスト関数についての完全ガイドはこちらの記事をご覧ください

少し地味ですが、実務でよく使う関数です。ぜひ手に馴染ませてみてください。

Xでフォローしよう