【PowerAutomate】配列にデータを追加する。最初、中、最後へ追加する方法や配列の結合など5選。

スポンサーリンク




作業を自動化する
  • 配列に値を追加したい
  • 配列と配列を結合したい

この記事では、そんな方に配列に値を追加する方法を5種類紹介します。

みずしぶき
みずしぶき

データ操作の要である「配列」を覚えてフローを使いこなしましょう。

スポンサーリンク

(1)配列の最後に値を1つ追加

配列の最後に値を追加する場合は変数の「配列変数に追加」アクションを使います。

変数の「変数を初期化する」を追加します。

名前:アルファベット
種類:アレイ
値 :下記

["a","b","c"]

変数の「配列変数に追加」を追加します。

名前:アルファベット
値 :d

これで値の追加は終了です。
この後の「作成」は値が追加されているかの確認用なので実際には不要です。

データ操作の「作成」を追加します。

variables('アルファベット')

フローを動かすと変数「アルファベット」の最後にdが追加されたのがわかります。

(2)配列の最初・最後に複数の値を追加

配列の最後に複数追加するアクションは存在しません。
関数を組み合わせて結合させます。

最初に1つ追加する場合

split(concat(●追加する値1●,'_,_',join(●元の配列●,'_,_')),'_,_')

最初に3つ追加する場合

split(concat(●追加する値1●,'_,_',●追加する値2●,'_,_',●追加する値3●,'_,_',join(●元の配列●,'_,_')),'_,_')

最後に2つ追加する場合

split(concat(join(●元の配列●,'_,_'),'_,_',●追加する値1●,'_,_',●追加する値2●),'_,_')

最後に3つ追加する場合

split(concat(join(●元の配列●,'_,_'),'_,_',●追加する値1●,'_,_',●追加する値2●),'_,_',●追加する値3●),'_,_')

「最後に2つ追加する場合」を例にフローを作ってみます。
変数の「変数を初期化する」を追加します。

名前:アルファベット
種類:アレイ
値 :下記

["a","b","c"]

データ操作の「作成」を追加します。

variables('アルファベット')

この作成は表示用ではありません。
変数の制限を回避するため、作成アクションでコピーを作っておきます。
詳しくは最後の項目を見てください。

データ操作の「作成」を追加します。
追加する複数の値を準備します。

1つ目は「d」
2つ目は「e」

変数の「変数の設定」を追加します。
この関数式で配列の最後に値を2つ追加します。

split(concat(join(outputs('配列のコピー'),'_,_'),'_,_',outputs('作成'),'_,_',outputs('作成_2')),'_,_')

データ操作の「作成」を追加します。
このアクションは結果確認用です。

variables('アルファベット')

フローを動かすと変数「アルファベット」の最後にdとeが追加されたのがわかります。

スポンサーリンク

(3)配列の好きな位置に値を追加

配列の要素数を指定して値を追加するアクションは存在しません。
関数を組み合わせて結合させます。

split(concat(join(take(●元の配列●,●要素数●),'_,_'),'_,_',●追加する値●,'_,_',join(skip(●元の配列●,●要素数●),'_,_')),'_,_')

データ操作の「作成」を追加します。
元になる配列を作成します。

["a","b","d","e"]

追加する値と追加する位置を要素数で指定します。
データ操作の「作成」を追加します。

1つ目は「c」 ※追加する値
2つ目は「2」 ※要素数2に追加する

データ操作の「作成」を追加します。
この関数式で配列の好きな位置へ値を追加します。

split(concat(join(take(outputs('作成'),outputs('作成_3')),'_,_'),'_,_',outputs('作成_2'),'_,_',join(skip(outputs('作成'),outputs('作成_3')),'_,_')),'_,_')

フローを動かすと、「b」と「d」の間に「c」が追加されていることがわかります。

(4)2つの配列を結合

配列を結合するアクションは存在しません。
関数を組み合わせて結合させます。

2つの配列を結合する場合

split(concat(join(●配列1●,'_,_'),'_,_',join(●配列2●,'_,_')),'_,_')

3つの配列を結合する場合

split(concat(join(●配列1●,'_,_'),'_,_',join(●配列2●,'_,_'),'_,_',join(●配列3●,'_,_')),'_,_')

データ操作の「作成」を追加します。
結合する1つ目の配列です。

["a","b","c"]

データ操作の「作成」を追加します。
結合する2つ目の配列です。

["d","e","f"]

データ操作の「作成」を追加します。
この関数式で2つの配列を結合します。

split(concat(join(outputs('作成'),'_,_'),'_,_',join(outputs('作成_2'),'_,_')),'_,_')

フローを動かすと2つの配列が結合されたのがわかります。

スポンサーリンク

(5)2つの配列を結合して重複削除

配列を結合して重複削除する場合はunion関数を使います。

union(●配列1●,●配列2●)
union(●配列1●,●配列2●,●配列3●)

2つの配列を結合して重複削除を試してみます。

データ操作の「作成」を追加します。
結合する1つ目の配列です。

["a","b","c"]

データ操作の「作成」を追加します。
結合する2つ目の配列です。わざと「c」を重複させました。

["c","d","e"]

データ操作の「作成」を追加します。
この関数式で2つの配列を結合します。

union(outputs('作成'),outputs('作成_2'))

フローを動かすと2つの配列が結合され、2つの配列で重複していた「c」が1つしかない事がわかります。

【注意点】自分自身の値は指定できない

配列を加工して、同じ配列に格納したい

配列を使っているとこう思うかもしれません。
一般的なプログラムでは可能ですが、PowerAutomateではできません。

フローを作ってみるとエラーになります。

The inputs of workflow run action ‘変数の設定’ of type ‘SetVariable’ are not valid. Self reference is not supported when updating the value of variable ‘アルファベット’.
タイプ ‘変数の設定’ のワークフロー実行アクション「変数の設定」の入力が無効です。変数 ‘アルファベット’ の値を更新する場合、自己参照はサポートされていません。

「自己参照はサポートされていません。」ということなので
一度、別の変数や定数へコピーして使う必要があります。

データ操作の「作成」を追加して、そこへ変数の内容を入れてしまいましょう。
保存を押してもエラーは表示されませんでした。

スポンサーリンク

まとめ

PowerAutomateで配列に値を追加する方法を5種類紹介しました。

アクションでは配列の最後に値を追加する事しかできません。関数式を使った配列操作方法を知っておくとフロー作成の幅が広がるので試してみてください。

PowerAutomateのおすすめ記事
人気ページ
Apply to eachの使い方
アレイのフィルター処理の使い方
日付関数の使い方
エラーを無視する方法
メールの内容をExcelへ転記
メール本文から名前を抽出

>>PowerAutomateの記事一覧を見る<<

お気に入り必須!公式ページ
Microsoft Power Automate
式関数のリファレンス
コネクタのリファレンス
Excel Online (Business)のリファレンス

最後まで読んで頂き、ありがとうございます。

「この記事が参考になった」「お礼でコーヒー代をプレゼントしよう」という方がいましたらチップ(15円〜)をお願いいたします。

Amazonギフト券- Eメールタイプ - Amazonベーシック

メールのあて先は 「mizusibuki8080@gmail.com」です。
※上記のアドレスは投げ銭受け取り専用です。他のメールは受け取れない設定にしてあるのでご注意ください。

作業を自動化する
ネットワークエンジニアになった人
タイトルとURLをコピーしました