Power Automateで「切り捨て」「切り上げ」をする方法

Power Automateで「切り捨て」「切り上げ」をする方法

Power Automateで「切り捨て」「切り上げ」をする方法

Power Automateでフローを作成していると色々不便に感じる場面は多くあるのですが、直近私が不便に感じたのは「小数点以下切り捨て」です。
四捨五入用の関数は用意されているのに切り捨て、切り上げの関数は2022/9時点で標準実装されていない状態です。なので、これらの機能を使うためには関数を組み合わせて自作する必要があるのです。
Power Automateってローコードで実装できるのが売りな気がしているのですが、ちょくちょく自作しないといけないものが多いんですよね。。 ちなみにPower Appsには標準で関数が用意されているようです。

切り捨て、切り上げについては色々調べてみましたが、比較的簡単にできる方法を見つけたので、今回はまとめてみたいと思います。


切り捨ての実装

まずは切り捨てから実装します。
仕組み的には簡単で、小数点で文字列を区切って、小数点以上の文字列だけを取り出せばよいのです。

以下に方法を記載していきます。

  1. 変数を初期化して用意する
  2. 下記の様にデータを格納するためのステップを作成しておきます。

    • inputData
    • エクセル等のデータを読み込んだ際に「小数点をもつ文字列」を格納する変数

    • arrayData
    • Split関数で「.」で区切ったアレイを格納するための変数

    • result
    • 切り捨て後の文字列を格納しておく変数

  3. 読み込んだデータをinputDataに格納する
  4. 下記のように対象の文字列を格納しておきます。
    私の場合はエクセルの値を読み込んで操作するので、値にはエクセルが設定されております。

  5. Split関数を使って小数点で切り分ける
  6. 下記のように対象文字列を「.」で区切り、arrayDataに格納します。

    なお、Split関数の引数は下記のように入力しています。
     split(variables('inputData'),'.')
                    

  7. 切り捨て後の値を設定する
  8. 下記のようにresult変数に、arrayDataの1番目の値を設定します。

     variables('arrayData')[0]
                    

以上の手順で切り捨てさせることができます。

試しにフローを実行してみたいと思います。
下記のような小数点をもつテーブルを作成します。なお小数を持たない数値がある場合にどうなるかを確認するために最後に「1」を入力しておきます。

このエクセルの読み込みと先ほど紹介したステップを組み合わせて下記のようなフローを作成しました。
このフローを実行して、結果を確認すると下記のようになっており、問題なく切り捨てができていることが確認できました!


切り上げの実装

続いて切り上げを実装します。
ベースは切り捨てのステップを利用して、最後に加算をしてあげることで実現させます。

以下のステップを追加していきます。

  1. 切り上げ後の値を格納する変数の用意
  2. 整数の変数を初期化して用意しておきます。

  3. 切り捨てで取得した値を整数に変換して加算
  4. 切り捨てステップで取得した値を整数に変換して、変数に格納しておきます。
    その後、切り上げるために「1」を加算します。

以上で切り上げ用のステップは完成です。

最後に切り上げが正しく機能するかを確認します。

結果は上記のようになり、「1」を除き正しく機能をしております。
1については小数点を持たないので、最後の加算を行わないようにしないといけないのですが、流石にその実装を入れると条件分岐が増えるので、今回はここまで。。
まあ、取得した値に「.」が含まれるかで条件分岐をさせればよいだけかと思いますが、それは今度まとめます。


さいごに

ということで今回はPower Automateで「切り上げ」「切り捨て」機能を実装しました。
整数に対する切り上げのみ改良が必要になりますが、おおよそ作成ができております。これくらいは標準で実装しておいてほしいんですけどね。
Power Automateには課題が多いですね。。今回はこのへんで、ではまた!

コメント

このブログの人気の投稿

PowerAppsで座席表を作成する

Power AutomateでTeamsのキーワードをトリガーにする

Power Automateで文字列抽出