船井デジタル道場
【ROUND関数】端数処理をマスターしよう!
INDEX
こんにちは!さっこです!
船井総合研究所で、kintone(グロースクラウド)のオンボーディングのお仕事をしています!
このデジタル道場では、「kintoneって本当に誰でも簡単に使えて楽しい!」とkintone愛を深めていただけるような記事を発信していきます。他の記事も探して読んでみてくださいね!
kintoneでは、フィールドに関数を設定しておくことができます。
入力をより効率的に行うために、ご活用いただいている方も多いですよね。
弊サイトでも、過去に日付計算や時間計算に使える関数をご紹介しました!
本記事では、端数処理をしたいときに大活躍する「ROUND関数」3種類についてお伝えします!
こんなお悩みはないですか?
kintoneで請求書を作る際に、こんなことを感じたことはないでしょうか?
●請求書を作っていたら、端数処理で消費税が1円ズレているのを発見!
●小数点以下第1位で四捨五入したいけれど、設定を変えられるのかな?
●切り捨てや切り上げはできる?
●小数点以下を非表示にすることはできる?
はい!すべて、関数を使うことで、標準機能の範囲で簡単に実装できます!
今回は、下記の例を用いて、端数処理の関数を設置してみましょう。
【端数処理の例題】
下記テーブルの合計金額(税抜)は、下記の通りです。
●合計金額(税抜) 28,004円
商品名 | 単価(税抜) | 数量 | 小計(税抜) | 税率 |
花 | 77 | 55 | 4,235 | 10% |
肥料 | 417 | 57 | 23,769 | 10% |
合計金額(税抜)の消費税額を、以下の3パターンの端数処理で計算したいです。
(A) 四捨五入
(B) 切り捨て
(C) 切り上げ
※端数処理は、小数点以下第1位の数字を用いて行います。
関数を使って端数処理していきます!
(A) 四捨五入:ROUND関数
(B) 切り捨て:ROUNDDOWN関数
(C) 切り上げ:ROUNDUP関数
上記でご紹介した「ROUND系関数3種」の関数の構文は、同じです。
さっそく関数の構文から確認していきましょう!
【ROUND系関数3種共通】関数の構文
準備:計算フィールドの設置
ROUND系関数は、計算結果が数値になります。
数値を自動計算したいときには、計算フィールドを設置します。
歯車マークをクリックするとさらに「設定」「複製」「削除」のドロップダウンリストが出てきます。
「設定」を押して計算フィールドの設定画面に入り、赤枠内の「計算式」の部分に関数を書きます。
関数の構文
ROUND系関数の構文は下記の通りです。
ROUND(数値, 桁数)
ROUNDDOWN(数値, 桁数)
ROUNDUP(数値, 桁数)
※「数値」には、フィールドコードもしくは数式を記入。
※「桁数」には小数点以下第何位で端数処理を行うかを指定します
たしかに、3つの関数の構文は同じですね!
「数値」と「桁数」をどのように記述すればいいか、確認を続けましょう!
数値の書き方
「数値」の部分では、端数処理を実行したいフィールドを指定します。
フィールドコードもしくは数式を指定することができます。
「数値」の部分にフィールドコードを記入する場合
「金額A」というフィールドに対して、四捨五入(ROUND関数)をしたい場合には、「数値」の部分に「金額A」というフィールドコードを記入します(※桁数については後述します)。
「数値」の部分に数式を記入する場合
「金額B」というフィールドに0.1をかけたうえで、その計算結果に四捨五入(ROUND関数)をしたい場合には、「数値」の部分に「金額B*0.1」という数式を記入します(※桁数については後述します)。
四則演算の復習は、こちらをご覧ください!
桁数の書き方
ROUND関数で指定する「桁数」の考えかた
「桁数」の部分では、「端数処理を行った結果、最終的に小数第何位の数値がほしいのか?」を表現します。
●整数にしたい(小数第0位)ときには、桁数は「0」。
⇒端数処理はその1つ前の小数第1位にて実行されます。
●小数第1位の数値がほしいとき(例:42.6%)は、桁数は「1」。
⇒端数処理はその1つ前の小数第2位にて実行されます。
桁数の指定方法と端数処理の関係や、ROUND関数と端数処理の関係をもっと詳細に比較検討したい!という方は、kintoneヘルプページをご覧ください!
【補足】計算フィールドで指定できる「小数点以下の表示桁数」について
計算フィールドの設定画面の中にも桁数の設定をできそうな部分があります。
ROUND関数でも桁数を設定したので、二重の設定になっていませんか?
「小数点以下の表示桁数」のことですね!
計算フィールドの設定画面に出てくる「小数点以下の表示桁数」とは、
アプリの表示上でのみ、指定した桁数で数値を切り捨てできる機能です。
実際に端数処理をしているわけではないので、CSVで出力すると、端数処理がされていないときと同じ値が出てきます。
今回はROUND関数で端数処理をしているので、「小数点以下の表示桁数」をあえて調整する必要がありません。空白にしておきましょう!
なるほど・・・
ROUND系関数についてまとめると、こういうことですね!
●ROUND関数の「数値」
端数処理したいフィールド or 端数処理したい計算式(関数)を指定
●ROUND関数の「桁数」
端数処理を行った結果、最終的に小数第何位の数値がほしいのか?を指定
●計算フィールドの「小数点以下の表示桁数」
空白にしておく
ROUND系関数3種の設定
では、改めて例題を確認したうえで、ROUND系関数3種をそれぞれ設定してみましょう!
例題
【端数処理の例題】
下記テーブルの合計金額(税抜)は、下記の通りです。
●合計金額(税抜) 28,004円
商品名 | 単価(税抜) | 数量 | 小計(税抜) | 税率 |
花 | 77 | 55 | 4,235 | 10% |
肥料 | 417 | 57 | 23,769 | 10% |
合計金額(税抜)の消費税額を、以下の3パターンの端数処理で計算したいです。
(A) 四捨五入
(B) 切り捨て
(C) 切り上げ
※端数処理は、小数点以下第1位の数字を用いて行います。
(A) 四捨五入:ROUND関数の設定
では、まずは四捨五入です。
関数を書く前に、やりたいことを思い出しておきましょう。
●使う関数:ROUND関数
●ROUND関数に使う「数値」:「合計金額(税抜)×10%」の数式
※合計金額(税抜)フィールドのフィールドコードは「合計金額税抜」
●ROUND関数に使う「桁数」:整数にしたいので「0」
今回書くべき関数はこちらです!
ROUND(合計金額税抜*0.1, 0)
端数処理をしない場合だと、28,004×10%=2,800.4となるのですが、正しく四捨五入されています♪
(B) 切り捨て:ROUNDDOWN関数の設定
では、2つめの端数処理、切り捨ての計算式を書いていきましょう!
関数を書く前に、やりたいことを思い出しましょう。
●使う関数:ROUNDDOWN関数
●ROUND関数に使う「数値」:「合計金額(税抜)×10%」の数式
※合計金額(税抜)フィールドのフィールドコードは「合計金額税抜」
●ROUND関数に使う「桁数」:整数にしたいので「0」
今回書くべき関数はこちらです!
ROUNDDOWN(合計金額税抜*0.1, 0)
端数処理をしない場合だと、28,004×10%=2,800.4となるのですが、正しく切り捨てされています♪
(C) 切り上げ:ROUNDUP関数の設定
では、3つめの端数処理、切り上げの計算式を書いていきましょう!
関数を書く前に、やりたいことを思い出しましょう。
●使う関数:ROUNDUP関数
●ROUND関数に使う「数値」:「合計金額(税抜)×10%」の数式
※合計金額(税抜)フィールドのフィールドコードは「合計金額税抜」
●ROUND関数に使う「桁数」:整数にしたいので「0」
今回書くべき関数はこちらです!
ROUNDUP(合計金額税抜*0.1, 0)
端数処理をしない場合だと、28,004×10%=2,800.4となるのですが、正しく切り上げされています♪
補足:高度な設定「数値の有効桁数と丸めかた」
ときどき、ROUND系関数を正しく記述したのに思い通りの数値にならないことがあるのですが・・・なぜなのでしょうか?
そういう場合は、「高度な設定」ページの「数値の有効桁数と丸めかた」の設定が影響していることが多いです・・・!
アプリごとに設定することができる「高度な設定」の「数値の有効桁数と丸めかた」の設定は、そのアプリ内のすべての数値に対して効力を発揮します。
ROUND系関数と高度な設定の2つの設定が同じ桁数に働きかけた場合には、ROUND関数よりも高度な設定のほうが優先して効力を発揮します。
ROUND系関数の記述が正しいのに思い通りの計算結果にならないときは、「高度な設定」の「数値の有効桁数と丸め方の設定を確認してみてくださいね!
cybozu様のヘルプサイトの下記ページを参考にしてください!
https://jp.cybozu.help/k/ja/user/app_settings/form/autocalc/rounding.html
最後に
いかがでしたか?
ROUND関数・ROUNDDOWN関数・ROUNDUP関数を使うと、端数処理ができるようになります。
kintoneではその他にも使える関数があるので、下記記事もぜひご一読ください!