⏱ 5分
🎯 Power Automate
Power Automateの条件設定で「equalsとcontains、どっちを使えばいいんだっけ?」と迷ったことはありませんか?
なんとなく使っていると、意図しない動作になって原因が分からなくなることがあります。
この2つの使い分けを一度しっかり整理しておきます。
Power Automate の条件(Condition)で「等しい」と「を含む」の違いが分からず、条件が思い通りに動かないことがあります。
この2つは似ているようで、動作が全く違います。
equals(等しい):完全一致
値が完全に同じときだけ true になります。
例:
「承認済み」equals「承認済み」 → true
「承認済み」equals「承認」 → false ← 注意!
1文字でも違う、スペースが余分にある、大文字小文字が違うだけでも false になります。
contains(を含む):部分一致
→ 関連記事:「【Vol.1】Copilot Studio × Power Automate × Word連携 つまずきポイント3選」
値の中に指定した文字列が含まれていれば true になります。
例:
「来月の会議について」contains「会議」 → true
「資料送付の件」 contains「会議」 → false

よくある勘違いパターン
→ 関連記事:「Power Automate【変数の値を増やす】アクションの使い方を業務に役立つ具体的なフローで解説」
NG:equals で部分一致を期待する
→ 関連記事:「Power Automate:変数を使ってあいさつメッセージを送る方法。
変数の初期化と変数の設定。」
「会議の日程調整」equals「会議」 → false
(完全一致ではないので、必ず false になる)
OK:部分一致には contains を使う
「会議の日程調整」contains「会議」 → true
スペースや余分な文字に注意
SharePoint の列や Forms の回答には、目に見えないスペースが含まれていることがあります。
そのため、equals が通らない場合は trim() 関数で前後のスペースを除去してから比較するのが安全です。
trim(outputs('アクション名')?['body'])
まとめ
- equals:完全一致(1文字でも違うと false)
- contains:部分一致(含まれていれば true)
- 条件が通らないときはまず「どちらを使うべきか」を確認する
実際のミスを例に挙げると、「ステータスが’承認済み’だったら処理を続ける」という条件を設定するとき、`contains`を使ってしまうケースがあります。
この場合、「仮承認済み」というステータスの申請も`contains(‘承認済み’)`に引っかかってしまい、誤作動の原因になります。
正確な一致を求める場合は必ず`equals`を使います。
逆に`contains`が正解なのは、「メールの件名に’重要’が含まれていたら特別処理する」「コメント欄に特定のキーワードが入っていたら通知する」のような部分一致のケースです。
文字列の一部が存在するかどうかを確認するのが`contains`の本来の使い方です。
また、大文字・小文字の違いには注意が必要です。
`equals(‘ABC’, ‘abc’)`はfalseを返します。
大文字・小文字を区別せずに比較したい場合は、事前に`toLower()`や`toUpper()`で統一してから比較する方法が確実です。
まとめ
次の内容で設定します。
実際のPower Automate画面を見ながら確認してみてください。
📋 この記事で学んだこと
「完全一致か部分一致か」を意識するだけで、条件の誤作動がぐっと減ります。
ぜひ使い分けを意識してみてください。
→ 次に読む記事:「【Vol.23】実務で効く通知設計 Before/After」


コメント