PowerAutomateでIF関数を使って条件に応じてコメント表示を変化させる

条件に応じて、チャットやメールのメッセージを変化させたいケースはよくあります。そういう時に、ぱっと思いつくのはこんな感じのフローではないでしょうか?

サンプルの例では、点数変数が50点以下であれば「もっと頑張りましょう」、51点以上であれば「よくできました!」をコメント変数にセットしてチャットに投稿しています。結果はこんな感じ。

点数のあとに「点」を入れておけばよかったですね。

これでよいのですが、例えばチャットの中にさらに複雑な条件ごとにコメントを制御したい場合には、条件を何重にも作りこんでいく必要があり、萎えてしまいます。

そんな時にはIF関数を使おう!

そこでIF関数です。Excelでもおなじみのアレです。なんとなくイメージつきますよね。簡単簡単。第1引数に条件をいれて、第2引数に正しい場合の回答、第3引数に異なる場合の回答を入れればいいんでしょう・・・? 

いいえ。違うんです。いっしょにすればいいのにね。

まずは誤った使い方

Excelで鍛えたIF関数の腕前を思い知れ! あれ?エラーです。 そう。>とか<とか>=とか<=とか=とか、条件を評価してくれないんです。

正しい使い方

正しくはこう書きます。

if(greater(variables('点数'),50),'よくできました!','もっと頑張りましょう')

greaterってなんですか? ですよね。PowerAutomateでは>とか=とかの比較をするのに、この関数のような式を使う必要があります。ほかにもand,or,equals,less,lessOrEquals,greaterOrEquals,empty,notなどあります。詳しくはMicrosoftのDOCSに記載されています。

使い方はそれほど難しくなく、greater(100,50)なら左が大きいのでTrueが返ってきます。その結果をIFの第1引数に入れてやると、Excel同様のIF動作をするというわけですね。

greater のテスト
greaterの結果

これができて何がうれしいのか?

表示するその場で値を判断して表示を切り替えられるので、複数の条件に対してあらかじめ変数を用意して差し替える必要がなくなります。例えばこんな感じに。

ずいぶんすっきりしましたね。

他にもちょっとしたPowerAutomateの小技を集めて書き溜めていますのでこちらからご覧ください。