Power FxがPower Automate for desktopで使えるようになりました。
先日公開されたPower Automate for desktop(PAD)のバージョン 2.39 でPower Fxが使えるようになりました。
今回はこの新しい機能を簡単に紹介したいと思います。
※ 2023年12月時点ではプレビュー版の機能です。今後仕様が変更される可能性がある点にはご注意ください。
Power Fxとは
Microsoft Learnの資料によると、Power Fxは下記のように説明されています。
これを読んでもちょっとピンとこないかもしれません💦
早い話がExcelのワークシート関数のようにコードを書いて処理できる言語がPower Fxです。
たとえばExcelで、文字列の左端から指定した文字数を取り出すLEFT関数を使って「=LEFT("こんにちは", 3)」と書くと、セル上では「こんに」と表示されますが、Power Fxでも同様の機能を持つ「Left」関数が用意されているので、「=Left("こんにちは", 3)」と書くことで、Excelと同じく「こんに」と表示されます。
Power Automate for desktopでの使い方
PADでは、新規フロー作成時に「Power Fxが有効」オプションをオンにすることで、Power Fxが使えるようになります。
上記オプションをオンにした後は、アクションのパラメーターとしてPower Fxの式が使えるようになります。
例えば上で挙げたLeft関数の例ですと、下図のように「メッセージを表示」アクションの「表示するメッセージ」パラメーターの中でLeft関数を使用しています。
上図の通り、Power Fxの式は「=」で始める必要があります。
利用例
PADで使えるPower Fx関数の簡単なサンプルをいくつかご紹介します。
現在時刻の取得
Now関数:「2023/12/24 12:35:01」のような形で現在時刻を返します。
=Now()
テキストの書式設定
Text関数:数値や日付、時刻の値に対して書式設定を行います。下記例では「2023年12月22日(金)」のような形で年月日と曜日を返します。
=Text(Now(), "yyyy年m月d日(ddd)", "ja-JP")
テーブルの作成
Table関数:テーブルを作成します。
=Table(
{
商品名: "ピザ",
価格: 400
},
{
商品名: "ドリア",
価格: 600
},
{
商品名: "ハンバーグ",
価格: 800
}
)
上記式で作成したテーブルは、PAD上では「リストカスタム オブジェクト」になります。
テーブルに列を追加
AddColumns関数:指定したテーブルに列を追加します。
=AddColumns(MyTable,
税込み価格,
Trunc(価格 * 1.1)
)
上記式では事前に作成したテーブル(MyTable)に、既存の「価格」列の値に1.1を掛けた数値を値とする新しい「税込み価格」列を追加しています。
テーブルのフィルタリング
Filter関数:テーブルから指定した条件を満たすレコードを取得します。
=Filter(MyTable, 価格 > 500)
上記式では事前に作成したテーブル(MyTable)の「価格」列の値が500以上のレコードのみを取得します。
文字列のURLエンコード
EncodeUrl関数:指定した文字列をURLエンコードした値を返します。
=EncodeUrl("こんにちは")
上記例では「こんにちは」をURLエンコードした値「%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF」が返されます。
その他、PAD上で使える関数については、下記Microsoft Learnの資料をご参照ください。
制限事項
PADでPower Fxを使用する上でいくつかの制限事項があります。
Microsoft Learnに詳しく書かれているので、下記ページをご参照ください。
おわりに
最初に書いた概要にある通り、Power FxはPower Platform全体で使用される共通言語となっています。即ち一度使い方を覚えてしまえば、Power Appsをはじめとした他のサービスでもその知識は活用できるわけです。
(Power Fxの実装はPower Appsの方が早いので、今回のPADへの実装は、むしろPower Appsに慣れている方がPADを使い始める良いきっかけになるのかもしれません)
今回のアップデートでPADでPower Fxが使えるようになったことで、上で挙げたサンプルのように、これまではスクリプトによる処理が必要だった場面もPower Fxの式に置き換えることができるようになりました。
2023年12月時点では使える関数は限られていますし、今後仕様が大きく変わる可能性もありますが、メリットは非常に大きく、今後も要注目の機能と言えるでしょう。
関連Webサイト
この記事が気に入ったらサポートをしてみませんか?