😊

PowerAutomateで乱数を使う

2021/04/30に公開

rand関数ベンリィ

PowerAutomateを使うとTeamsやOutookを活用した自動化がローコードで実現できます。
こちらの記事ではPowerAutomateを使って簡単な雑談botを作ってみました。
その中で使っている乱数を発生させるrand関数について少しメモ書きをしていきます。

基本のお作法

rand関数は引数に最小値と最大値を取り、最小値以上最大値未満の整数をランダムで返す関数です。

メッセージなどを記入する欄でいつも右下にニョインと出る枠の中に「式」という項目があるので、その中にrand関数があります。

ニョイン
例えば下記のように記述すると、1以上4未満の整数(1,2,3)をランダムで生成してくれます。
トリガーと送り先を設定して試しに実験してみても良いかもしれません。

テストするとこんな感じでFlow bot君から送られてきます。

Excelと組み合わせる

前回の記事ではExcelに記載されている質問一覧からランダムで質問を取得して送信する、という処理を入れました。
この実装をやっていきます。

Excelの準備

Excelに質問一覧と質問の個数を書いたテーブルをそれぞれ用意します。

質問が増えたときに動的に処理してくれるよう、質問の個数はExcelのCOUNTA関数を使って数えます。
質問一覧のNoは0から開始することに注意してください。

質問の個数の取得

PowerAutomateのExcelノードから「行の取得」を選択します。
お作法に沿って記入をしていき、質問の個数を取得しましょう。
これで現時点で「3」という数字が取得できます。

この数値が取得できれば、rand(0,3)として0,1,2をランダムに取得することができそうです。

intパース

ですが、実はExcelから取得した数値「3」はstring型らしく、このまま扱うとエラーを吐いてしまいます。

なので、int関数を使ってパースする必要があります。
先ほどのrand関数の第二引数の方をintでくくってあげればパース完了です。

質問の取得

あとはこの値をキーにして質問表から質問を取り出します。
またExcelノードの「行の取得」を記入していきます。

取得した質問をチャットで送ってみましょう。

ちゃんと来てますね!!

おわりに

rand関数が使いこなせたらかなり使い道が広がる気がしています。
もっと楽な方法をご存じの方がいらっしゃいましたら是非是非教えてください!!

Discussion