kintone COLUMN

kintone(キントーン)のフィールドタイプ別解説「計算」

2020-07-07

kintoneの「計算」フィールドは、計算式を書くことで他の数値フィールドの値を使用して計算を行なった結果を保持しておくフィールドです。

計算フィールドでできること・注意点

計算フィールドでできること

「計算」フィールドでは、計算した結果が「数値」「日付」「日時」となるような計算式を定義することができます。

計算結果が数値になる計算では、四則演算だけではなく、べき乗(3の2乗 = 9)や、テーブルの行の特定のフィールドの合計を出したり、四捨五入・切り捨て・切り上げといったような計算もできます。

具体的には

  • 入力された金額にかかる、消費税の自動計算 や 税込価格の計算
  • 単価と数量が入力されている時の小計の計算
  • 現地価格と為替レートが入力されている時の、日本円を計算
  • 申し込み日から3日後の日付を自動計算
  • 日付フィールドと日付フィールドの間の日数を計算
  • フィールドに入っている数値の切り上げ・切り捨て・四捨五入

といったようなことができます。 (実際の使用例はこちら)

計算した結果に単位を前や後ろにつけたり、計算結果が数値の場合は桁区切りを設定することができます。 一覧での以上・以下といった条件での絞り込み、グラフでの数値の遷移表示のフィールドとしても可能です。

注意点

数値フィールドを使用する時の注意点と同様のことを注意する必要があります。

一つは計算フィールドはkintoneの全文検索の対象にはなりません。全文検索で検索したいフィールドには使用しないでください。 (滅多にありませんが、もし計算結果を全文検索で検索したい場合は別途カスタマイズを行ない、「文字列」フィールドにして保存するようにする必要があります)

次に、小数点のデータの扱いですが、kintoneアプリの設定で変更していない限り、小数点以下4桁で丸められます。 (それより下の桁まで計算結果で算出されていた場合、5桁目の値を一番近い偶数の値にされてしまう)

小数点以下の0から10の桁まで入力か、単純な四捨五入で丸めるか・一番近い偶数の値にするかの設定は、kintoneのアプリの設定の中にある「高度な設定」から変更可能です。 ただし、フィールドごとに小数点以下の桁数・丸め方を変えることはできません。

計算フィールド特有の注意ですが、計算結果が日付になっている場合でも、カレンダーに表示することはできません。 別途カスタマイズをして日付フィールドに入れるようにする必要があります。

できることと、注意点を確認したところで、実際のkintoneのフィールドの設定画面を見ながら説明していきます。

計算フィールドの設定画面

計算フィールドの設定内容は下記の通りです。

「フィールド名」「フィールド名を表示しない」「必須項目にする」「フィールドコード」については、 他のフィールドタイプと同じなので計算フィールド固有の設定項目の

  • 計算式
  • 小数点以下の表示桁数
  • 単位記号

について説明します。

計算式

計算式のところにはその名のとおり、計算式を入力します。

1+1

と入力し、計算後のタイプを数値にすると、詳細画面では2になります。

計算式に1+1を入れる

別の数値フィールドの値を使用した計算の例です。 数値フィールドを設置し、フィールドコードを「数値」とします。 この「数値」フィールドに入力された数値に10を足したものを自動計算する場合、計算式のところに

数値 + 10

と入力します。「+」は半角で入力してください。

数値 + 10

そうすると、編集画面で数値のフィールドに入力した値に10を追加したものが計算フィールドに表示されます。

500 + 10
-1 + 10

今度は2つ数値フィールドを用意します。フィールドコードを「左のフィールド」「右のフィールド」とします。 この2つの数値フィールドの数値をかけ算した結果を自動計算する場合、計算式のところに

左側のフィールド * 右側のフィールド

と入力します。「*」も半角で入力します。

左側のフィールド * 右側のフィールド

追加・編集画面で、左側のフィールドに120、右側のフィールドに3 と入れると 120 × 3 で 360が表示されます。

360.png

たし算の時は「+」、引き算の時は「-」、かけ算の時は「*」、割り算の時は「/」を使います。すべて半角で入力してください。 この「+」「-」「*」「/」のような計算に使用する記号のことを 演算子 といいます。

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.5」と表示されます。 あくまで詳細画面での表示桁数なので桁数を増やすと桁数は増えます。桁数を減らすと減ります。

0.5555

計算結果が「0.1」になる式を設定すると数のようになります。

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)

R3のご提供サービス
自社のシステム開発・移行などをご依頼したい方
お客様とともに作りながら考える
新しいシステム開発
kintone導入・アプリ開発・カスタマイズにお困りの方
kintoneをもっと使いやすくする
gusukuシリーズ