PowerApps|Concat関数の基本と4つの実践的使用方法

PowerAppsで
テーブル型のデータを表示したい時があります。

一見そんな時あるの??と思ってしまいそうですが、以下のような時が当てはまります。

  1. テーブルの情報を簡単に表示したい時
  2. 条件に合うデータのみを簡単に確認したい時
  3. コンボボックスで選択したものを表示したい時

このような時には、「Concat」関数を使用します。

この記事を読んでいる方は、Concatを使用したい、もしくは結合して表示したいなどの操作を行いたいのではないでしょうか。

今回は、Concatの基本的な使用方法から、実際に使用するときに出会う状況に合わせたパターンを解説していきます。

その都度、コードとデータの変化を分かりやすいようにまとめていますので、ぜひ最後まで一緒に見ていきましょう!

Concatの基本使用方法〜テーブルを結合する〜

Concatは、テーブル型データに対して文字列として連結することができます。

つまり、テーブル型データの内容を文字列としてみたいときに活躍する関数と思っていただければよいでしょう。

Concatの基本的な使用方法は以下です。

Concatの基本文法

Concat(Table, Formula, Separator);
  • Table :
    結合したデータが含まれるテーブル
  • Formula:
    結合したい文字列の列名(またはその組み合わせ)
  • Separator:(オプション)
    結合された結果の間に挿入される文字列

例えば、以下のような単純なデータがあるときに、それらを結合するために使用することができます。

Name列のデータを全て結合して表示したいとしましょう。

Concat(TableName, Name, ", ");

結果

"Alice, Bob, Charlie"

また、ただ列名のみを指定するのではなく、列名同士を組み合わせて結合することも可能です。

列名を組み合わせて結合する

列名を組み合わせて結合する

Formulaは、列名単体として指定することも可能ですが、列名の組み合わせとして指定することも可能です。

以下のような複数列を持つデータがあるとします。

これらのデータであれば「FirstName」と「LastName」を組み合わせて表示したい場合もあると思います。

Concat(TableName, FirstName & " " & LastName, "; ");

結果

"John Doe; Jane Smith; James Bond"

2つ目の引数(基本文法でのFormula)で、列名を使用してどう組み合わせるかを指定しています。

この組み合わせを自由に変えることで、あなたのテーブルデータに合わせて表示を分けることができます。

Concatを改行で結合する〜Char(10), <br/>〜

文字列を結合するときに、改行して結合したい場合にはどうすれば良いでしょうか。

改行して結合するためには、文字列の間に「Char(10)」を挟んであげます。

例えば次のような簡単なテーブルがあるとしましょう。

Concat(TableName, Name, Char(10));

Concatの基本的な使用方法に、改行文字「Char(10)」を指定しています。
これにより、改行して文字列が結合されるようになります。

結果

Alice
Bob
Charlie

HTMLテキストで改行を入れたい場合

HTMLテキストで改行を入れたい場合

もし、Labelなどではなく、「HTMLテキスト」を用いている場合には、
<br>を用いて改行を行う必要があります。

Concat(TableName, Name, "<br>");

このようにすることで、「HTMLテキスト」でも改行を入れることができます。

【Concat, Filter】条件に合うレコードを結合

先ほどまでは、指定した列名全てのデータを文字列として結合して表示していました。

しかし、特定の条件に合ったレコードの文字列のみ表示したい場合などもあると思います。

そのような場合は、Concat関数に加えて「Filter」関数を使用して抽出します。

例えば、以下のようなデータを想定します。

そのうちAgeが30以上のデータのみを抽出して、文字列として結合したいとしましょう。

Concat(
    Filter(TableName, Age >= 30),
    FirstName & " " & LastName,
    Char(10)
)

結果

Jane Smith
James Bond

テーブルから重複を削除して出力する〜Concat, Distinct〜

テーブルの項目に重複が発生している場合もあります。

そのためには、重複を削除する必要がありますが、その際には「Distinct」関数を使用します。

例えば、以下のような重複があるデータを想定しましょう。

この中のProductNameを重複を削除して、文字列として結合表示したいとしましょう。

この場合は、Distinct関数を使用して以下のように書きます。

Concat(
    Distinct(
        ProductTable, 
        ProductName
    ),
    Value,
    Char(10)
)

Valueには、Distinctによって重複削除されたテーブル型データが入ります。

それにより、重複が削除された状態で文字列が表示されます。

結果

Apple
Banana
Cherry
Date

ConcatとDistinct, Filter関数を組み合わせた例〜特定の条件で重複を削除する〜

特定の条件で重複を削除する

Concat関数とDistinct関数を組み合わせるだけでなく、
特定の条件に当てはまるデータの重複を削除して表示したい場合もありえます。

特定の条件に当てはまるデータの重複を削除したい場合には「Filter」関数を加えて使用します。

次のような商品テーブルがあるとしましょう。

ここで「Quantity」が30以上の商品について、重複を削除して表示させたいとします。

Concat、Distinct、Filter関数を組み合わせて以下のように書きます。

Concat(
    Distinct(
        Filter(ProductTable, Quantity >= 30),
        ProductName
    ),
    Value, 
    Char(10)
)

Filterしたデータ(Quantityが30以上)のデータの重複を削除して、改行を間に挟み文字列結合します。

Apple
Cherry
Date
あべべ

Appleが2つ当てはまりますが、きちんと重複削除されて表示されているのがわかりますね。

コンボボックスで選択した値を結合して表示する〜Concat, Combobox, SelectedItems 〜

では、コンボボックスとの組み合わせを考えてみましょう。

コンボボックスでは、選択した値を一覧で表示させると便利な時があります。

コンボボックスで選択した値をConcatで結合して表示させてみましょう。

以下のようなデータをComboBoxのItemsプロパティに設定しているとします。

ComboBox1.Items = [
    {ID: 1, ItemName: "Apple"},
    {ID: 2, ItemName: "Banana"},
    {ID: 3, ItemName: "Cherry"},
    {ID: 4, ItemName: "Date"},
    {ID: 5, ItemName: "Elderberry"}
]

次にテキストラベルに以下のようなComboBoxのSelectedItemsを取得し結合するコードを書きます。

Text = Concat(ComboBox1.SelectedItems, ItemName, Char(10))

「ComboBox1」の部分は、適宜あなたのコンボボックスの名前を入れてください。

すると、以下のように選択した項目が文字列として表示されるようになります。

結果

PowerAppsを学ぶにはUdemyがおすすめ

この記事では
「PowerApps|Concat関数の基本と実践的な使用方法」を詳しく解説しました。

PowerAppsについての記事や書籍はまだまだ少ないのが現状です。

実は、Udemyでは本には載っていない専門的な分野や最新の技術トレンドに関する豊富なコースが用意されています。

これらのコースを通じて、私は多くの実践的なスキルを身につけることができました。

定期的に限定セールを行なっていますので、ぜひチェックしてみてください。

Interactive Button Udemyであなたに必要なオンライン講座を見つけよう!

PowerAppsのさらに深い理解と実践的なスキルを身につけるために、Udemyのコースを活用することをお勧めします。

まとめ

Concat関数を使用することで、テーブル型のデータの中身を簡単に確認、表示することができます。

改行を使用した結合もでき、より見やすくする事も可能ですのでぜひ試してみてください。

ぜひあなたのPowerAppsの助けになることを願っています。では、また!

(Visited 921 times, 1 visits today)