はじめに
Power Automateを使って「自動化」デビュー!…したはいいものの、
「Apply to each(それぞれに適用)」が勝手に出てきてよく分からない…
そんな経験ありませんか?
この記事では、初心者がつまずきやすい「Apply to each」問題と、
すぐに使える対策&簡単な実例をセットで紹介します!
✅ そもそも「Apply to each」って何?
Power Automateでは、複数のデータを1つずつ処理するときに
「Apply to each(それぞれに適用)」が使われます。
たとえば:
- Excelの表にある「顧客リスト」
- SharePointの「タスク一覧」
- Formsの「回答一覧」
などを 1件ずつ処理したい
ときに使われます。
⚠️ 初心者がつまずきやすいポイントとその対策
① 勝手に「Apply to each」が挿入されてしまう
よくあるシチュエーション
Excelからデータを取得して、その中の「メールアドレス」列を使ってメールを送りたい…
→ 動的な値を選んだ瞬間、勝手にループが挿入される!
🎯 原因
Power Automateは「これは配列だ!」と判断すると、自動的にループを挿入します。
✅ 対策:1件だけ取り出すには first()
を使う
first(outputs('表内に存在する行を一覧表示')?['body/value'])?['メールアドレス']
先ほどの変数の値を格納する場所で動的なコンテンツではなく 式
を選択して
上記の first()
の関数を入力しOKを押します。
1件だけ取り出す関数を入力したので先ほどと違い
勝手にループが挿入されることがなくなりました!!
② 「Apply to each」の中でしか使えない値がある
よくあるシチュエーション
- Excelで顧客データを取得(複数行)
- Apply to each で1人ずつ処理 - 名前を取得 - 条件に合う人だけメール送信
- 処理した名前をあとでまとめて通知したい
でも「名前」などの動的な値が Apply to each の外に出せない!!
式に選んでもエラーになるか、空になる
🎯 原因
Apply to eachは、1件ずつ処理する「ループ」スコープの中で動的な値を生成しています。
そのため、その中で得た「Current item(現在のアイテム)」などの値は、ループの中でしか使えません。
✅ 対策:変数に格納する
Apply to each の中で動的な値を変数に入れておけば
ループの外でも使えるようになります。
フローの最初にアレイ型の変数を初期化しておく。
Apply to each の中で変数に値を追加していく
追加した値を結合させて、出力した値をTeamsの本文に添付する
おまけ:ループには必ず名前をつけましょう
ループが増えてくると、どの「Apply to each」が何の処理かわからない問題が出てきます。
そんな時は「…」メニューから名前変更をしておくのがオススメです!
これを行っておくだけでフローが読み返しやすくなります
おわりに
最初は少しとっつきにくい「Apply to each」ですが、
ポイントさえ押さえておけばとても強力な味方になります!
「なんか勝手にループされる…」と思ったら、
まずはデータの中身が「配列」かを確認しましょう!