12
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【PowerApps Tip's】テーブルのレコードを文字列化する

Posted at

先日は、文字列を指定の文字で分割(Split)しました。
今日は、配列やテーブルで保持されたデータを1つの文字列に変換してみましょう。

先日の記事 → 【PowerApps Tip's】改行で文字列分割

はじめに

文字列を、ある特定の文字で分割する必要に迫られるのと同様に、配列やテーブルに格納されている情報を、全て結合して1つの文字列として扱いたい場合があります。

例えば、下記のような配列(テーブル)があったとします。

Result
2019
09
15

これを”/”でつなぎ合わせたい。

期待する結果: 2019/09/15

さて、どうすればいいでしょう?

その他 開発言語経験があると陥る罠

PowerApps 以外の開発言語によるプログラミング経験があると、
「Loop で回して末尾に区切り文字入れればいいじゃん」
とか考えちゃうと思うんですよね。
(中級者以上だと「文字列操作系の関数かメソッドあるじゃろ?」って思うでしょうがw)

で、ForAll 関数をみるかな?とか行動を予想するんですけども。

PowerApps の ForAll 関数

ForAll 関数は処理中で 変数をアレコレする UpdateContext することができません。つまり、Loop内で変数を操作するのは得意ではないパターンがあるんです。がんばれば出来ないコトもない・・・かな?たぶん。
なんにせよ、ForAll だと今回のニーズに対応するのはメンドクサイんですよね。もっと簡単な方法があるんです。

テーブルの全レコードを文字列結合

PowerApps で、テーブルの全レコードを単一の文字列にしたい場合は「Concat」関数を利用します。

PowerApps の Concat および Concatenate 関数

ちなみに、単純な文字列連携の場合は、上記リンク先にある Concatenate 関数か、"&"演算子を利用してください。

動作イメージ

左側:ListBox コントロール
右側 上:TextInput コントロール。区切り文字を指定
右側 下:TextInput コントロール。結合結果を表示(※)

※の箇所に記載してある関数は下記。

TextInput2.Default
Concat(ListBox.SelectedItems,Result,TextInput.Text)

指定した区切り文字を含んだ1つの文字列に変換されてますね。

動作イメージを確認すると把握できると思うのですが、区切り文字がブランクになっている場合、選択された値が単純に結合された状態となります。

Concat 関数は「Concat(テーブル、式、区切り文字)」で、”区切り文字”はオプションなのです。つまり、省略することも可能。上記の動作イメージではTextInput コントロールから区切り文字を取得しているため関数で指定していますが、単純に文字列結合だけしたい場合は省略しても問題ありません。

うん、便利ですね。

まとめ

  • テーブルのレコードを文字列化する際は「Concat」関数
    • 区切り文字を指定すると、ソレを含んだ状態で文字列化される
    • 区切り文字を省略すると、単純にレコードが文字列として結合される
  • 単純な文字列連結は「Concatenate」関数、または "&"演算子

昨日は、文字列をテーブルへ分割しました。
今日は、テーブルから文字列へ結合しました。
これで、分割と結合が扱えるようになるハズなので、色々と捗りますね?

それでは、皆さま。素晴らしい Power Platform Life を!

12
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?