関数のタイプ
関数は、数学や論理など 10 種類のカテゴリにグループ化されます。 カテゴリは、特定の関数を見つけやすくするために整理されています。 次に、各カテゴリの概要といくつかの例を示します。
さまざまな例を示しながら、静的なテキストと値を使用します。 これにより、例をできるだけ簡単にテストして再作成できます。 フローでは、この静的データの代わりに動的コンテンツを置き換えることができます。 動的データが関数に適した形式であることを確認してください。
このスクリーンショットでは、各カテゴリ ヘッダー (文字列関数またはコレクションなど) の右側にもっと見るという単語が表示されています。 もっと見るを選択すると、そのカテゴリの関数の完全な一覧が表示されます。
文字列関数の横のもっと見る を選択します。
文字列関数
String (テキスト) 関数は、文字列の変更、文字列内の文字の検索、文字列の書式設定などを行うために使用されます。 テキスト操作は、他の場所から取得したデータの書式設定や変更を改善する場合によく使用されるコア スキルです。
文字列関数の例として、formatnumber 関数があります。 この関数では、数値を所定の形式の文字列に変換できます。 よくあるリクエストは、数値を通貨のような形式にすることです。 数値 12.5 を $12.50 に変更するには、次の式を使用します。
formatNumber(12.5,'C')
C は、通貨の数値形式の文字列を表します。 ご安心ください。その他のオプションは 標準の数値書式設定文字列 で紹介しています。 数値を通貨として表示し、円記号を付けて表示する必要がある場合には、どうすればよいでしょうか。 省略可能なパラメーターを使用して、ロケールを渡すことができます。
formatNumber(12.5,'C','ja-JP')
この式は ¥13 を返します。
コレクション関数
これらの関数は、配列や文字列に使用されます。 これらの関数は、配列が空かどうかの確認、最初の項目や最後の項目の取得、結合、ユニオン、および共通部分の操作にも使用できます。
有用なコレクション関数の例として、length があります。 length を使用して、文字列または配列に含まれる項目の数を返すことができます。 次の例は、"I love Power Automate" という文字列の文字数をカウントするのに使用されます。
length('I love Power Automate.')
出力は、22 になります。 スペースが 1 文字としてカウントされることに注意してください。 このタイプの関数は、検証に使用したり、文字列関数を使用して文字列を操作したりするのに使用できます。
論理関数
これらの関数を使用して、条件の処理、値の比較、およびその他のロジックベースの評価を行うことができます。 多くの場合、これらは、数値が別の数値よりも大きいかどうかを比較する If ステートメントと見なされます。 Power Automate は、予想されるすべての論理比較をサポートします。
この例では、式により 12 が 10 より大きいかどうかが比較され、適切な文字列が出力されます。 これは、複数の関数を使用する最初の式にもなります。 if と greater 論理関数を組み合わせます。
If(greater(12,10),'Yes','No')
この式の結果は、文字列 Yes になります。 式を理解するには、内側から外側へと作業を行います。「Greater(12,10)」は、12 が 10 より大きいかどうかによって、true または false を返します。 より大きいために、返される値は true になります。
返される値が true であることがわかったところで、If 関数が最初のコンマの後のデータを返すことを確認できます。 この場合、これは文字列 Yes です。 false の場合、文字列 No が返されます。
重要
上に示すように論理式を記述することもできますが、式のない If ステートメントを記述できる条件と呼ばれるアクションもあります。 Copilot に条件の挿入を求めるか、プラス アイコンを選択して条件と呼ばれるアクションを検索することにより、フローに新しいステップを挿入できます。
式の代わりに条件アクションを使用して記述した同じロジックを次に示します。
ヒント
上のスクリーンショットで、Copilot が true 分岐に Compose を正常に追加したが、false 分岐に Compose 4 アクションを追加しなかった点に注目してください。 Copilot が指定した処理に必ずしも成功するとは限らないため、必ず Copilot が追加したアクションが正しいことを確認してください。
そのうちに、要件に応じて式と条件の両方を組み合わせて使用することがわかるでしょう。
変換関数
これらの関数は、データのタイプを変更するのに使用されます。 これは、テキストの数値を整数に変換するような簡単な関数や、ファイルのエンコード形式を base64 からバイナリに変更するような、より複雑な関数です。 これらの関数が使用可能であることを理解することは、データを整形する際に発生する問題を解決するのに役立ちます。
一般的なシナリオとして、int または float を使用して、テキストの数値を実際の数値に変更する必要がある場合があります。 データ ソースからフローにデータをインポートする場合は、これが一般的です。 12 または 12.4 という数値は、テキストとして保存されている場合があります。 論理関数でこの数値を使用したり、数値を要求される場所に書き込んだりするには、その数値を変換する必要があります。 次の例では、文字列 "12" を整数 12 に変更します。
Int('12')
これにより、整数 12 が出力されます。 これが文字列 "12.4" であるとすると、小数点が含まれているためにそれを浮動小数点値に変換する必要があります。 この場合に使用するもの
Float('12.4')
テキストの数値を使用して、前の例を実行できます。
If(greater(Int('12'), Float('12.4')),'Yes','No')
12 は 12.4 より大きくないため、文字列 "No" が出力されます。 このような関数を組み合わせることは一般的であり、学んでおくと便利なパターンです。
数学関数
数学関数は期待どおりに実行されます。 数学関数を使用すると、加算、減算、乗算、および他の同様の関数を実行できます。 また、数学関数を使用して、データ セットから最小値と最大値を求めることや、指定した間隔での乱数を取得することができます。 1 から 10 のランダムな番号を取得するには、次の式を使用します。
rand(1,10)
ここで覚えておく必要があるのは、数値を加算するための関数 (add) と数値を減算するための別の関数 (sub) があることです。 多くの数式言語では、減算を生成するのに負の数を追加しますが、Power Automate では追加しません。 2 つの数値を加算するには、次の式を使用します。
add(12, 13)
この場合は 25 が返されます。 3 つの数値を追加する場合は、次のように 2 つ目の関数を追加する必要があります。
add(add(12,13),15)
この場合は 40 が返されます。 これまで見てきたように、必要な結果を得るために関数をネストすることがあります。
日付と時刻関数
日付と時刻関数は、現在の日付と時刻を返す、タイム ゾーンを変更する、日付と時刻に関する特定の情報を検索する、および日付や時刻に関するその他の操作を実行するのに使用されます。 データに日付と時刻の値が設定されている場合は、これらの関数を使用する必要があります。
Power Automate で日付と時刻関数を操作する際に覚えておく必要がある重要な点は、多くの場合、日付と時刻関数は UTC に基づいているということです。 ほとんどのデータ ソースは、UTC 形式で Power Automate とデータをやり取りします。 また、UTCNow()
関数を使用した場合、UTC 形式で現在の時刻が返されます。 現在米国東部標準時のユーザー データと比較するために使用する必要がある場合は、次の式を使用して変換する必要があります。
convertFromUtc(utcNow(), 'Eastern Standard Time', 'dd-MM-yyyy hh:mm tt' )
これにより 09-02-2024 11:28 AM が出力されます。 日付と時刻の形式のオプションの完全な一覧については、カスタム日時書式指定文字列を参照してください。
参照関数
参照関数は、アクションやトリガーの出力を操作するのに使用されます。 優れた点は、ほとんどの場合、Power Automate がこれらの関数を記述することです。 フローに動的コンテンツを追加すると、気づかないうちに参照関数を使用していることになります。 動的コンテンツを追加し、そのコンテンツの上にカーソルを合わせた場合、これをアクションで確認できます。
次のスクリーンショットでは、トリガーの User name の動的コンテンツを [作成] の 入力 に追加すると、これをアクションで確認できます。
マウス ポインターを使用してユーザー名をポイントすると、以下のことが確認できます。
triggerOutputs()?['headers']?['x-ms-user-name-encoded']
Power Automate では、triggerOutputs を使用して式が作成されています。 これは、Headers プロパティから x-ms-user-name-encoded プロパティを取得しています。 Power Automate では、ほとんどの場合、これらのプロパティを動的コンテンツで参照します。 ただし、必要に応じて独自の式を記述して、これを再作成することもできます。 各トリガーとアクションには、データの取得方法について異なる形式が割り当てられます。
さまざまなトリガー、アクション、データ ソース、およびフローの apply-to-each ループを追加して、これらの関数を確認します。 その後、そのプロパティを動的データとして使用して、さらに例を参照します。 通常は、このようなタイプの式を作成することはありません。
ワークフロー関数
ワークフロー関数は、フローに関する情報を取得するのに使用され、参照関数と密接に関連しています。 関数の 1 つはワークフローと呼ばれます。 次に示すように使用できます。
workflow().run.id
これにより、現在のフロー実行の ID が返されます。 必要に応じて、これをエラー報告やログに使用できます。 これらの関数は、通常は使用されません。
URI 解析関数
これらの関数は、文字列として渡される URI を分割するのに使用されます。 これらの関数を使用して、ホスト、パス、クエリ文字列、または URI のその他の部分を検索できます。 次の例では、uriQuery を使用して、指定された URI のクエリ文字列部分を取得する方法を示します。
uriQuery('https://flow.microsoft.com/fakeurl?Test=Yes')
これにより、文字列 ?Test=Yes
が返され、文字列関数で解析して、URI から渡された値を取得できます。
操作関数
操作機能は、フロー内の特定のオブジェクトを操作するために使用されます。 空白以外の最初の値の検索、プロパティの使用、または xpath の一致の検索などの操作を実行できます。 これらの関数は、通常は JSON または XML ノード評価で使用されます。
便利な関数の 1 つに、coalesce があります。 この関数を使用すると、指定した値のセットから null でない最初の値を見つけることができます。 この関数は、次の式に示すように使用します。
coalesce(null, 'Power Automate', 'Power Apps')
この式によって文字列 Power Automate が返されます。 複数の値を渡して、null でない最初の値を見つける必要がある場合に便利です。