公開日:2020-06-17
kintoneの「計算」フィールドは、計算式を書くことで他の数値フィールドの値を使用して計算を行なった結果を保持しておくフィールドです。
計算フィールドでできること・注意点
計算フィールドでできること
「計算」フィールドでは、計算した結果が「数値」「日付」「日時」となるような計算式を定義することができます。
計算結果が数値になる計算では、四則演算だけではなく、べき乗(3の2乗 = 9)や、テーブルの行の特定のフィールドの合計を出したり、四捨五入・切り捨て・切り上げといったような計算もできます。
具体的には
- 入力された金額にかかる、消費税の自動計算や税込価格の計算
- 単価と数量が入力されている時の小計の計算
- 現地価格と為替レートが入力されている時の日本円を計算
- 申し込み日から3日後の日付を自動計算
- 日付フィールドと日付フィールドの間の日数を計算
- フィールドに入っている数値の切り上げ・切り捨て・四捨五入
といったようなことができます。 (実際の使用例はこちら)
計算結果の前後に単位をつけたり、計算結果が数値の場合は桁区切りを設定することができます。 一覧での以上・以下といった条件での絞り込み、グラフでの数値の遷移表示のフィールドとしても可能です。
注意点
数値フィールドを使用する時の注意点と同様のことを注意する必要があります。
一つは計算フィールドはkintoneの全文検索の対象にはなりません。全文検索で検索したいフィールドには使用しないでください。 (滅多にありませんが、もし計算結果を全文検索で検索したい場合は別途カスタマイズを行ない、「文字列」フィールドにして保存する必要があります)
次に、小数点のデータの扱いですが、kintoneアプリの設定で変更していない限り、小数点以下4桁で丸められます。 (それより下の桁まで計算結果で算出されていた場合、5桁目の値を一番近い偶数の値にされてしまう)
小数点以下の0から10の桁まで入力するか、単純な四捨五入で丸めるか、一番近い偶数の値にするかの設定は、kintoneのアプリの設定の中にある「高度な設定」から変更可能です。 ただし、フィールドごとに小数点以下の桁数・丸め方を変えることはできません。
計算フィールド特有の注意ですが、計算結果が日付になっている場合でも、カレンダーに表示することはできません。 別途カスタマイズをして日付フィールドに入れるようにする必要があります。
できることと、注意点を確認したところで、実際のkintoneのフィールドの設定画面を見ながら説明していきます。
計算フィールドの設定画面
計算フィールドの設定内容は下記の通りです。
「フィールド名」「フィールド名を表示しない」「必須項目にする」「フィールドコード」については、 他のフィールドタイプと同じなので、計算フィールド固有の設定項目の
- 計算式
- 小数点以下の表示桁数
- 単位記号
について説明します。
計算式
計算式のところにはその名のとおり、計算式を入力します。
1+1
と入力し、計算後のタイプを数値にすると、詳細画面では2になります。
別の数値フィールドの値を使用した計算の例です。 数値フィールドを設置し、フィールドコードを「数値」とします。 この「数値」フィールドに入力された数値に10を足したものを自動計算する場合、計算式のところに
数値 + 10
と入力します。「+」は半角で入力してください。
そうすると、編集画面で数値のフィールドに入力した値に10を追加したものが計算フィールドに表示されます。
今度は2つ数値フィールドを用意します。フィールドコードを「左側のフィールド」「右側のフィールド」とします。 この2つの数値フィールドの数値をかけ算した結果を自動計算する場合、計算式のところに
左側のフィールド * 右側のフィールド
と入力します。「*」も半角で入力します。
追加・編集画面で、左側のフィールドに120、右側のフィールドに3 と入れると 120 × 3 で360が表示されます。
足し算の時は「+」、引き算の時は「-」、かけ算の時は「*」、割り算の時は「/」を使います。すべて半角で入力します。 この「+」「-」「*」「/」のような計算に使用する記号のことを 演算子 といいます。
kintoneの計算フィールドで使用できる演算子は下記のとおりです。
式の例の「左側のフィールド」には「100」、右側のフィールドには「2」が入っているものとします。
計算のための演算子
演算子 | 計算内容 | 式の例 | 結果 |
---|---|---|---|
+ | 足し算 | 左側のフィールド + 右側のフィールド | 102 |
– | 引き算 | 左側のフィールド – 右側のフィールド | 98 |
* | かけ算 | 左側のフィールド * 右側のフィールド | 200 |
/ | 割り算 | 左側のフィールド / 右側のフィールド | 50 |
^ | べき乗 | 左側のフィールド ^ 右側のフィールド | 10000(100の2乗) |
& | 文字として結合 | 左側のフィールド & 右側のフィールド | 1002(「100」という文字と「2」という文字を結合) |
実際には、計算のための演算子だけではなく、数値・文字を比較するための演算子もあります。 比較のための演算子は比較した結果、式に書いた比較のとおりなら1、式に書いた比較のとおりでないなら0として計算されます。
演算子 | 計算内容 | 式の例 | 結果 |
---|---|---|---|
= | 一致かどうか | 左側のフィールド = 右側のフィールド | 1 |
!=、<> | 一致してないかどうか | 左側のフィールド != 右側のフィールド | 0 |
< | 右側のほうが数値が大きいかどうか | 左側のフィールド < 右側のフィールド | 0 |
<= | 右側のほうが数値が大きいかどうか(右側と左側が同じ場合も1になる) | 左側のフィールド < 右側のフィールド | 0 |
> | 左側のほうが数値が大きいかどうか | 左側のフィールド > 右側のフィールド | 1 |
>= | 左側のほうが数値が大きいかどうか(右側と左側が同じ場合も1になる) | 左側のフィールド > 右側のフィールド | 1 |
比較のための演算子は、主に「IF関数」で使用します。
関数
計算フィールドで使える関数は下記のとおりです。
式の例の「フィールドA」は「123.444」の数値データが、「フィールドB」は「124.555」の数値データが入っているものとします。
関数名 | 処理内容 | 式の例 | 結果 |
---|---|---|---|
SUM | 指定した数値の合計を出します。また、テーブルの中のフィールドを指定すると、テーブルの中での合計を出します | SUM(フィールドA,フィールドB) | 247.999 |
ROUND | 四捨五入 | ROUND(フィールドA, 1) | 124.4 |
ROUNDUP | 切り上げ | ROUNDUP(フィールドA, 2) | 124.45 |
ROUNDDOWN | 切り捨て | ROUND(フィールドB, 0) | 124 |
IF | もし××だったら… | IF(フィールドA > 120,”120より大きい”, “120以下”) | 120より大きい |
AND | AとBが同時に条件を満たしていたら | IF(AND(フィールドA<フィールドB, フィールドA > 120), “AはBより小さくて120より大きい”, “どちらかの条件を満たしていない”) | “AはBより小さくて120より大きい” |
OR | AとBのいずれかが条件を満たしていたら | IF(OR(フィールドA<フィールドB, フィールドA > 150), “AはBより小さいか、150より大きい”, “どちらかの条件も満たしていない”) | |
NOT | 条件の結果を逆にする | IF(NOT(フィールドA > 120),”120以下”, “120より大きい”) | “120より大きい” |
ROUND、ROUNDUP、ROUNDDOWNの()の中のカンマで区切ってある2つめの数値は、小数点以下のどの桁数で四捨五入や切り上げ・切り捨てをするかを設定するものです。 省略することも可能ですが、省略した場合は小数点以下で四捨五入・切り上げ・切り捨てを行なう形になります。(自動的に0が設定される)
また、マイナスの数値を設定すると、-1を設定すると1の位、-2を設定すると10の位で同様の処理が行なわれます。
小数点以下の表示桁数
小数点以下の表示桁数は、詳細画面での小数点以下の表示桁数を設定します。 計算結果の小数点以下の桁数を無視して指定の桁数が表示されるようになります。
たとえば、小数点以下の表示桁数に2を設定して、計算結果が0.5555だった場合、 詳細画面では「0.55」と表示されます。 あくまで詳細画面での表示桁数なので、桁数の増減に伴って表示される桁数も増減します。
計算結果が「0.1」になる式を設定すると下図のようになります。
単位記号
単位記号は、表示したい場所(前か後ろか)と、表示したい単位を設定します。
実際の使用例
入力された金額にかかる、消費税の自動計算 や 税込価格の計算
金額を入力する数値フィールド(フィールドコード:金額)、消費税額を出す計算フィールド、税込価格の計算フィールドを用意します。
消費税額10%を仮定して、消費税額を出す場合は、金額に10%(0.1)をかけ算することで計算できるので
金額 * 0.1
を、式に入力します。ただ、10%をかけた場合、小数点以下の数値が出てしまう可能性があります。(298円に10%をかけると29.8になるため) 小数点以下の数値をどう扱うかはそれぞれのルールがあると思いますが、端数を「切り上げ」する場合は
ROUNDUP(金額 * 0.1, 0)
を設定すると切り上げたあとの消費税額が計算されます。
税込価格を計算する場合は1.1をかけ算すればいいので、
金額 * 1.1
を設定します。切り上げをしたい場合は
ROUNDUP(金額 * 1.1, 0)
を設定します。
税率を選びたい場合
2020年6月時点で、商品や用途によって、消費税率は8%と10%の2種類のいずれかになります。(もしくは非課税の商品もあるかと思います)
税率が混在している場合、税率を設定する必要があります。
その場合、「税率」を入力する数値フィールドを設置して、計算式に
金額 * 税率
という式を入れる方法がとれます。
ただ、8%か10%が選べればいい!という場合に、わざわざ手で税率を入れるのも手間です。
そういう場合は「税率」を選ぶラジオボタンフィールドを設定します。
そして、そのラジオボタンの値に応じて税率を変えるという処理をするために「IF」関数を使います。
金額 * IF(税率 = “8%”, 0.08, 0.1)
とすることで、8%が選ばれていたら0.08をかけ算する。8%でなかったら0.1をかけ算する。というようにすることもできます。
もし、非課税も含めた3つの選択肢がある場合は
金額 * IF(税率 = “8%”, 0.08,IF(税率 = “10%”, 0.1, 0))
と、IFを複数個使って設定することも可能です。
さらに切り捨てをしたい場合は
ROUNDDOWN(金額 * IF(税率 = “8%”, 0.08,IF(税率 = “10%”, 0.1, 0)))
とするとできます。
単価と数量が入力されている時の小計の計算
単価のフィールド(フィールドコード:単価)と数量のフィールド(フィールドコード:数量)がある場合は、そのままかけ算すればいいので、計算式に
単価 * 数量
を入力します。
もし、数量が100を越えていたら(101以上だったら)、5%割引きしたい!という場合があったら、割引額という計算フィールドを作って
IF(数量 > 100, 単価 * 数量 * 0.05, 0)
のようにすれば、割引額を計算することも可能です。こちらもROUND・ROUNDUP・ROUNDDOWNと組み合わせて、四捨五入・切り上げ・切り捨てすることも可能です。
現地価格と為替レートが入力されている時の、日本円を計算
こちらも税率を算出する時と同じです。
現地価格のフィールド(フィールドコード:現地価格)と、為替レート(フィールドコード:為替レート)の2つの数値フィールドを作って、計算フィールドの式に
現地価格 * 為替レート
を入れると算出できます。
申し込み日から3日後の日付を自動計算
日付の計算は、少しコツが必要です。
日付フィールドの値に足し算をする場合は、「秒」を足す必要があります。(引き算でも秒を引く必要があります)
なので3日後を計算したい時は
3(日) * 24(時間) * 60(分) * 60秒 → 259200 を足します。
申し込み日(フィールドコード:申し込み日)の3日後を計算したい場合は
申し込み日 + 259200
を入れると計算できます。 ただ、いきなり3日後だから259200を入れる…といわれてもわかりにくいと思いますので
申し込み日 + (3 * 24 * 60 * 60)
のように入れても大丈夫です。括弧の中も自動で計算してくれます。
もちろん、計算フィールドの設定で「日付」を選択するようにしてください。
日付フィールドと日付フィールドの間の日数を計算
こちらも内部では「秒」で扱われているので…
まずはじめに、申し込み日(フィールドコード:申し込み日)と利用開始日(フィールドコード:利用開始日)の2つの値を引き算します。
利用開始日 – 申し込み日
すると、利用開始日と申し込み日の差分の「秒数」が表示されます。(1日違いだったら86400秒。3日違いだったら259200秒) なのでこれを86400で割り算すると、日数が計算されます。
この時注意が必要なのは、足し算や引き算より割り算が優先されてしまうので、引き算の計算は括弧でくくってください。
(利用開始日 – 申し込み日) / 86400
もちろん、86400のかわりに
(利用開始日 – 申し込み日) / (24 * 60 * 60)
でも大丈夫です(24時間 × 60分 × 60秒 → 86400)