Dataverseの整数型の計算列について、四捨五入せずに切り上げ切り捨てする方法はないか?とご質問を頂いたので、ここにメモ。
※2024年2月25日追記:計算列が廃止予定となったため、計算式列でRound, RoundUp, RoundDown関数を使用して実現するのが推称です。
Dataverse 計算式列(数式列)の使い方を詳しく調査|使用可能な関数や演算子、親テーブルの参照はどこまでいけるか?
計算列が廃止予定になってしまうので、その代わりとなる計算式列(数式列)について詳しく調査した。計算式列(数式列)計算式列は最近追加されたDataverseの列のデータの種類で、数式を使用して列の値を計算することができる。計算列に「廃止予定」...
Dataverseの計算列
Dataverseの整数型や文字列型の列には計算列というものを指定できて、計算した結果を列の値とすることができる。
今回は、整数型の列に計算式を適用して小数点が発生するような計算をしたところ、自動で四捨五入されてしまうので切り上げ切り捨てしたい、というご質問を頂いた。
やりたいこと
例えばこんなテーブルがあって、
ここに整数型の計算式を追加する。
で、Num列の値を十分の一にする計算式を入れてあげる。
すると、Numが10のときは計算式列は1になり、
Numが15のときは四捨五入されて計算式列は2になる。
これを四捨五入ではなく切り上げ切り捨てにしたい。
実現方法
計算式に標準で用意されている関数の中には切り上げ切り捨ての関数はないので、式に手を入れていく。
Power Apps での計算列を定義する - Power Apps
計算列を定義する方法について
といっても大したことはなくてちょっとした工夫。
切り捨て
まず切り捨ては式をこんな感じにする。
するとNumが15のときも計算式列は1になって切り捨てされるし、
Numが10のときは当然そのまま。
Numを9にすると切り捨てされて、計算式列は0となる。
切り上げ
切り上げのときは式をこんな感じにする。
するとNumが11のときは切り上げされて計算式列は2になるし、
Numが10のときは計算式列はそのまま1。
Numを19とかにすると計算式列は切り上げされて1になる。
ということで、標準の関数が用意されていなくても、整数型くらいなら工夫すれば何とかなることもある!という内容でした。
コメント