【2020年12月追記:消費税を10%とし、記事に加筆修正を行いました。】
こんにちは!矢野です!またまたkintone連携サービス「フォームブリッジ」の便利機能について紹介させてもらいますね!!今回は前回記事同様「数値計算」に関する記事です!前回は数値計算フィールドの紹介だったのですが、その数値計算フィールドには便利で役に立つ計算式がいくつかあるのです。なので今回はその代表的な便利な式の種類、使い方について紹介していきたいと思います!
少数点以下の切り捨て、四捨五入
まずは、少数の扱い方についてです!この計算式は消費税込の金額の計算をするときなどにきっと役立つと思います!例えば、198円の商品の税込み金額を計算したいとします。以下のように式を立てました。
198円*110/100 = 217.8円
単純に算出すると、「217.8円」になります。この数値が「合計金額(税込)」の欄に入力されていてもよくわからないしとても違和感がありますよね。ですので、あらかじめ少数点以下をなくし整数になるような計算をしよう!!という計算式です。小数点以下の「切り捨て」と「四捨五入」を紹介しますね。(日本では、消費税は「切り捨て」が一般的らしいです。ただ、「四捨五入」でも法律的には問題ないらしいです。知らなかった。。)今回も前回の数値計算記事と同じ「商品発注書」というフォームを使います!
フォームの基本構成>フィールドの設定 より設定したいフィールドにカーソルを合わせます。「合計金額(税込)」のフィールドの設定から、計算式に式を追加します!!「発注リスト」テーブルの「単価」を合計する式は以下のようになります。
小数点以下切り捨て
まずは、「切り捨て」から説明します!対象にしている数値をnumberとすると(今回の例では「sum(order_list.unit_price)*110/100」。sum(order_list.unit_price)は「合計(発注リスト.単価)」のフィールドコード。)
floor(number)
のように書き加えればOK!ですので今回は、以下のように設定すればOK!
四捨五入
四捨五入の計算も同様に行います!今回は、floor()の部分がround()になります!ですので、四捨五入したい数値をnumberとすると、
round(number)
回答結果
これら2つのフィールドを加えて、実際に回答してみますね!フィールドはこんな感じです!回答画面に移動し、回答してみます!まずは、100円の消しゴムを入力すると、税込にしても110円の整数なので、全部同じ値になりますね。しかし、これに88円の赤えんぴつを追加し合計金額を198円にすると、、まず、純粋に*110/100を実施して10%の消費税込みの値段を算出しようとすると206.8円になってしまいます!ですので「切り捨て」では206円、「四捨五入」では207円となります!!しっかりと計算してくれていることが確認できましたね。
追記・切り上げ
※お問合せをいただきましたので、「切り上げ」に関する関数も確認しました。
消費税の計算ではあまり使われないかもしれませんが、
「切り上げ」も対応する関数があります!
「ceil」という関数を用いて、対象にしている数値をnumberとした場合
ceil(number)
のように設定すればOKです。
備考・「切り捨て」と「丸め」
一応、「切り捨て」のfloorによく似た「丸め」という計算式もあるので備考として書いておきますね!上の例のように扱う数値が正の数の場合はどちらも同じなので、余裕のある人だけ読んでみてください!「丸め」は値が正の数(0以上)であれば、「切り捨て」と同じですが、負の数(0以下)の時は違う結果になるので紹介します。設定は、丸める数値numberに対して
trunc(number)
設定画面はこんな感じです。回答画面で、正の場合と負の場合の比較をしてみましょう!
こうなりました!!この理由は、「切り捨て」は値自体が小さい整数の方に合わせる一方、「丸め」は値の絶対値の小さい方(0に近い方)に合わせるという原理だからです!あまり、負の値を使う機会は少ないかもしれませんが、参考にしてみてください。
最大値・最小値
次に平均値、最大・最小値の求め方について説明します!回答フォームに複数の数値フィールドがあるときなど、使えると思いますよ!!今回は、例として「テスト結果フォーム」を用います。講師が、ある生徒のテスト結果を管理するという設定で説明していきますね。5教科を入力するフィールドの下に、最大値・最小値を自動で計算するフィールドを用意します!(今回はおまけとして「平均値」も求めてみます!)
最大値
最大値の計算式は、
max(number1, number2, …)
と入力すればOKです!!number1, number2というのは、最大値を求めたい数値のフィールドコードです!(「計算式」の欄の下のフィールドコード一覧から選択できます。)なので、実際にはこのように、5教科のフィールドコードを()内に入れます!
最小値
最小値も
min(number1, number2, …)
とすればよいので、最大値と同じように設定します!ちなみに、平均値に関しては合計点を教科数で割ればよいのでこのように設定します!
回答結果
実際に回答画面で、5教科の点数を入力すると自動で5教科の中の最大・最小値(平均値)を計算してくれました!!!一応、kintoneでも確認してみると、無事、データ投稿に成功しました。
小数点の桁数を揃える
数値が整数にならない時、最初に説明した「切り捨て、四捨五入」のように整数にはしないで、少数の桁数を揃えたい!!と思うときないですか??実はこれも紹介してきた計算式を使えば実現できます!!例えばさっきの例で教科が3教科の時、このように、平均点を計算すると割り切れないので桁数が多くなってしまいます!しかしながら、単純に整数に切り捨て、四捨五入するのにも抵抗があります。。ですので、小数点第二位に揃えるように設定しましょう!!(小数点第三位以降は四捨五入。)設定画面で、このように入力します!!といっても何がなんだかよくわかりませんね。1つ1つ説明しますね!!ここで(calc_1_1)というのは単純計算で求めた平均点のフィールドコードの事です!ここでは、これまで同様少数点を揃えたい数値のフィールドコードをnumberとします!話を一般化するために、このnumberを小数点第n位に揃えることを目指します。まず、numberに10のn乗を掛け、位をn個上げます。入力する計算式は、
number*(10^n) (ex. 1.4163 *(10^2) = 141.63 )
です!そして、この数を四捨五入します!!つまり、計算式は
round(number*(10^n)) (ex. round(1.4163*(10^2)) = 142)
こうなります!そして最後に、最初にn桁上げた分、元に戻せばいいので10のn乗で割ります!よって、
round(number*(10^n))/(10^n) (ex. round(1.4163*(10^2))/(10^2) = 1.42)
この三段階で、numberを小数点第n位に揃える計算式は完成です!(ex. 1.4163 → 1.42)この設定をすれば、少数を扱う数値フィールドでも回答欄を綺麗に揃えることが出来るので使えそうですね!!!それでは実際に設定したものを試してみます!しっかりと、第三位で四捨五入をして小数点第二位に揃える計算が正しく出来ていました!!きちんと使えそうですね!
まとめ
数値計算の中の便利な式を紹介してきましたが、今回の記事はいかがだったでしょうか?大きく、「四捨五入」、「切り捨て」、「切り上げ」「最大値」、「最小値」、「少数点の桁数の揃え」の6つを紹介しました!1つでも気になったものがあれば、是非試しに設定して使ってみてください!また、数値計算フィールドの計算式はこちらに対応しているので、今回紹介したものの他にも役に立つものがあると思います!!
ただ、これらの関数は、フォームブリッジの機能というより、使用しているライブラリの機能を活用しているので、弊社ではサポート対象外であることをご了承いただき、お試しください!
フォームブリッジが気になった方、試しに使ってみたい!と思った方は、こちらの無料トライアルにてお試しいただけます!!是非一度、フォームブリッジを使ってみてください!
これからもフォームブリッジの便利な機能を紹介していきます!それでは、今回はこの辺りで~。