先日は、文字列を指定の文字で分割(Split)しました。
今日は、配列やテーブルで保持されたデータを1つの文字列に変換してみましょう。
先日の記事 → 【PowerApps Tip's】改行で文字列分割
はじめに
文字列を、ある特定の文字で分割する必要に迫られるのと同様に、配列やテーブルに格納されている情報を、全て結合して1つの文字列として扱いたい場合があります。
例えば、下記のような配列(テーブル)があったとします。
Result |
---|
2019 |
09 |
15 |
これを”/”でつなぎ合わせたい。
期待する結果: 2019/09/15
さて、どうすればいいでしょう?
その他 開発言語経験があると陥る罠
PowerApps 以外の開発言語によるプログラミング経験があると、
「Loop で回して末尾に区切り文字入れればいいじゃん」
とか考えちゃうと思うんですよね。
(中級者以上だと「文字列操作系の関数かメソッドあるじゃろ?」って思うでしょうがw)
で、ForAll 関数をみるかな?とか行動を予想するんですけども。
ForAll 関数は処理中で 変数をアレコレする UpdateContext することができません。つまり、Loop内で変数を操作するのは得意ではないパターンがあるんです。がんばれば出来ないコトもない・・・かな?たぶん。
なんにせよ、ForAll だと今回のニーズに対応するのはメンドクサイんですよね。もっと簡単な方法があるんです。
テーブルの全レコードを文字列結合
PowerApps で、テーブルの全レコードを単一の文字列にしたい場合は「Concat」関数を利用します。
PowerApps の Concat および Concatenate 関数
ちなみに、単純な文字列連携の場合は、上記リンク先にある Concatenate 関数か、"&"演算子を利用してください。
動作イメージ
#PowerApps #初心者 #入門 配列やテーブルを文字列化。区切り文字も付与も可。 pic.twitter.com/RdMB1bvtwt
— やま (@yamad365) September 15, 2019
左側:ListBox コントロール
右側 上:TextInput コントロール。区切り文字を指定
右側 下:TextInput コントロール。結合結果を表示(※)
※の箇所に記載してある関数は下記。
Concat(ListBox.SelectedItems,Result,TextInput.Text)
指定した区切り文字を含んだ1つの文字列に変換されてますね。
動作イメージを確認すると把握できると思うのですが、区切り文字がブランクになっている場合、選択された値が単純に結合された状態となります。
Concat 関数は「Concat(テーブル、式、区切り文字)」で、”区切り文字”はオプションなのです。つまり、省略することも可能。上記の動作イメージではTextInput コントロールから区切り文字を取得しているため関数で指定していますが、単純に文字列結合だけしたい場合は省略しても問題ありません。
うん、便利ですね。
まとめ
- テーブルのレコードを文字列化する際は「Concat」関数
- 区切り文字を指定すると、ソレを含んだ状態で文字列化される
- 区切り文字を省略すると、単純にレコードが文字列として結合される
- 単純な文字列連結は「Concatenate」関数、または "&"演算子
昨日は、文字列をテーブルへ分割しました。
今日は、テーブルから文字列へ結合しました。
これで、分割と結合が扱えるようになるハズなので、色々と捗りますね?
それでは、皆さま。素晴らしい Power Platform Life を!