業務改善プラットフォームである「kintone(キントーン)」は、業務システムである「アプリ」を使用することで、様々な業務の効率化を実現します。
kintoneアプリでは、計算式を設定でき、設定した計算式に沿って自動で値を算出します。
本記事では、使用頻度の高い計算式の使い方について解説します。
kintoneアプリの関連記事をご用意しております。ぜひ、ご覧ください。
▼kintoneのアプリとは? 作成方法やサンプルを解説
▼kintone(キントーン)のアプリ作成例が知りたい! 使い方やサンプルアプリを紹介
kintone計算式の基本
計算式を使用する際の3つのポイントがあります。
-
計算フィールドまたは文字列(1行)フィールドの設定画面で計算式を入力する
-
計算式でフィールドを参照する際は「フィールドコード」を使用する
-
関数や演算子を使用する
計算式として使用できるのは「計算フィールド」と「文字列(1行)フィールド」です。計算結果を数値として扱う場合は計算フィールドを、文字列として扱う場合は文字列(1行)フィールドを使うように注意してください。
また、フィールドコードとはフィールドを識別するための文字列です。計算式では、設定されたフィールドコードを使用して他のフィールドを参照し、計算します。フィールドの種類によっては、フィールドコードを参照できないものもあるため、事前に確認しておきましょう。
計算式で参照できるフィールド/参照できないフィールド
計算式では、半角の「+」「-」「*」「/」などの演算子と「SUM」「IF」などの関数を利用できます。さらに演算子や関数は、ひとつの計算式の中で組み合わせて使うことも可能です。
計算式の設定方法
計算式の設定方法について説明します。
ここでは例として、単価×数量の合計を算出する計算式を設定します。
- レコード一覧画面の右上にある歯車アイコンをクリックし、「フォーム」タブを選択
-
左側のフィールド一覧から「数値」フィールドを2つ配置する
出典:「計算式の基本的な使いかた」kintoneヘルプ
https://jp.cybozu.help/k/ja/user/app_settings/form/autocalc/set_autocalc.html - 数値フィールドの右上にある歯車アイコンから「設定」をクリック
-
「フィールド名」と「フィールドコード」に「単価」と入力
出典:「計算式の基本的な使いかた」kintoneヘルプ
https://jp.cybozu.help/k/ja/user/app_settings/form/autocalc/set_autocalc.html - 右下[保存]ボタンをクリック
- 上記の手順を、もう一つの数値フィールドに設定。フィールド名とフィールドコードに「数量」と入力し、[保存]ボタンをクリック
-
「計算」フィールドを設置
出典:「計算式の基本的な使いかた」kintoneヘルプ
https://jp.cybozu.help/k/ja/user/app_settings/form/autocalc/set_autocalc.html - 計算フィールドの右上にある歯車アイコンから「設定」をクリック
-
「フィールド名」に「小計」、「計算式」に「単価*数量」を入力
出典:「計算式の基本的な使いかた」kintoneヘルプ
https://jp.cybozu.help/k/ja/user/app_settings/form/autocalc/set_autocalc.html - [保存]ボタンをクリック、画面左上の[フォームを保存]ボタンをクリック
- 画面右上の[アプリを更新]または[アプリを公開]をクリック
以上で計算式の設定は完了です。レコード追加画面やレコード編集画面で単価と数量を入力すると、小計に計算結果が表示されます。
さらに便利な活用法
上記は基本的な計算式の設定方法ですが、さらに便利に使える計算式について、日付・時間の計算と複数のフィールドを結合する方法を紹介します。
日時・時間の設定
数値の他に日付・日時・時刻・時間も計算できます。経過日数や所要時間を割り出したい場合などに役立ちます。
kintoneでは、日付や日時を秒単位で扱うため、計算式も秒単位で設定します。例えば、1分間は「60」と入力し、時間は「3600」もしくは「60*60」、1日は「86400」もしくは「60*60*24」と入力します。
「対応締切日」フィールドに、例えばレコード作成日の7日後の日付を表示したい場合、「対応締切日」フィールドに「作成日時+(60*60*24*7)」を入力します。
複数のフィールドを結合する
複数のフィールドの入力値を結合し、まとめて表示することが可能です。住所や氏名など、複数のフィールドに分けて入力した内容を1つのフィールドに表示したい際に活用できます。
まずは、以下の手順を準備します。
- 結合したいフィールドを配置
- 結合結果を表示する「文字列(1行)」フィールドを配置
- 「文字列(1行)」フィールドの設定から「自動計算する」にチェックを入れる
- 「計算式」に結合したいフィールドのフィールドコードを入力し、間に「&」を入れる
例えば、「住所」フィールドに「郵便番号」「都道府県」「市町村区」などの情報をまとめて表示させたい場合は、「住所」フィールドに「郵便番号&都道府県&市区町村」と入力します。
計算式(関数)一覧
kintoneでは、ユーザーのニーズに合わせたアプリを作成するために、いくつかの関数が用意されています。それらの関数を組み合わせることで、より複雑な処理を実行できます。
関数名と機能は以下のとおりです。
- SUM:数値の加算もしくは合計を行う
- IF:条件分岐を明示し、条件の真偽によって処理を分岐する
- LEFT:文字列の左側から指定された数の文字を取り出す
- YEN:計算結果を3桁区切りで表示する
- AND:指定されたすべての条件を満たすときに真とみなす
- OR:指定されたいずれかの条件を満たすときに真とみなす
- NOT:指定された条件の反対を真とみなす
- ROUND:指定した桁数で四捨五入する
- ROUNDDOWN:指定した桁数で切り捨てる
- ROUNDUP:指定した桁数で切り上げる
- CONTAINS:チェックボックスや複数選択に対する条件を指定する
加算や集計、四捨五入といった計算に使われる関数と、条件の真偽を判断したり条件によって処理を分けたりといった条件分岐に使われる関数があります。
全くの未経験で初めて関数に触れる方でも、kintoneならそこまで難しくはありません。関数名は基本的に英単語で付けられているため、関数名を見ればどのような機能を持っているかを容易に推測できます。
また、汎用的に使用される関数が使われているため、ExcelやGoogleスプレッドシートなどで関数を使用した経験がある方なら、必要となる引数なども理解しやすいでしょう。
SUM
SUMは、フィールド内の数値を加算するときに使う関数です。減算する場合には、引きたい方をマイナスの数値にすれば減算と同じ動きをします。また、この関数は数値を加算するだけでなく、テーブルの数値フィールドの合計も出せます。
実際に使用する場合には、「SUM(数値1,数値2,数値3,…)」のように、加算する数値のフィールドコードを記述します。フィールドコードは計算するフィールドのフィールド名ではないため、注意しましょう。
フィールドコードは、フィールド作成時に自動で付与されます。変更可能なため、フィールド名と同じにしておくと計算式を入れるときにわかりやすく、フィールド指定ミスも防げます。
例えば、果物の購入数量の合計を計算するケースでは、リンゴ、ミカン、バナナというフィールドを作成して、フィールドコードもフィールド名と合わせます。
「SUM(リンゴ,ミカン,バナナ)」と記述すると、実際のアプリでリンゴ、ミカン、バナナのフィールドに数値を入力する部分の3つのフィールドの合計が計算されます。
また、テーブルの数値フィールドの合計を行う場合は、「SUM(数値1)」というように、合計を出す数値のフィールドコードを記述します。
例えば、リンゴの数量を合計する場合は、「SUM(リンゴ)」と記述すると、リンゴのフィールドの数値が合計されます。
IF
IFは、指定した条件による処理を分岐する場合に使う関数です。
例えば、ある数値フィールドが「0の場合はAという値を返す」「0でない場合はBという値を返す」というように、条件によってフィールドの値を変え、処理を分岐させる場合に使います。
基本的にはIF関数ではひとつの条件式しか記述する箇所がありませんが、後ほど説明するAND関数やOR関数などの関数によって、複数のフィールドを条件式に使ったり、複数の条件を判断させたりと、処理の幅も広がります。
実際に使用する場合には、「IF(条件式, 成り立つ場合の値, 成り立たない場合の値)」というように、始めに条件式を記述します。次にその条件が成り立つ場合に返す値を記述し、その次にその条件が成り立たない場合に返す値を記述します。
例えば、テストの点数が合格ラインかどうかを判定するケースの場合、点数というフィールドを作成して、フィールドコードもフィールド名と合わせます。その点数というフィールドに数値を入力すると、その点数が合格ラインに達しているかを判断してその結果が表示されます。
「IF(点数 >= 50, "合格", "不合格")」と記述すると実際のアプリでは、点数が50以上の場合は「合格」と表示され、50よりも少ない場合は、「不合格」と表示されます。
LEFT
LEFT関数は、フィールドの文字列の左側から、指定された文字数を取り出すときに使う関数です。フィールドから文字を取り出すだけでなく、決められた文字列を指定して取り出せます。
実際に使用する場合には、「LEFT(文字列[,文字数])」というように、取り出す文字が入力されているフィールドコードを記述します。文字数は省略もでき、省略した場合は左側から1文字だけ取り出されます。
とある店舗で商品名の先頭に★マークがついているものをピックアップするケースを例に解説します。
- 「商品名フィールドを作成し、フィールドコードをフィールド名に合わせる
- 「オススメ」という文字列フィールドを作成し、「自動計算する」にチェックを入れる
「LEFT(商品名,1)」と記述すると、商品名の左側から1文字が取り出されます。他に記載した条件判断の関数を組み合わせて、1文字目が★マークの商品に「オススメ」と表示するような仕組みの構築もできます。
この例では文字数として1を指定していますが、1文字だけ取り出す場合は文字数の指定は省略できます。注意点として、この関数はデフォルトで使用できないため、関数のプラグインを使用しなければなりません。
YEN
YEN関数は、計算結果を3桁区切りのいわゆる「¥(円)」形式で表す場合に使う関数です。表示結果としては、先頭に「¥マーク」が付き、3桁区切りとなるため、見積書や請求書といった金額を扱う場合に有効です。
注意する点として、この関数は計算結果が文字列として返されるため、数値フィールドには指定できません。
数値フィールドには設定として3桁区切りで表示するオプションがあります。数値フィールドで3桁区切りが必要な場合や、¥マークを先頭に付けたい場合はオプションで設定しましょう。
また、このYEN関数では、指定した桁数で四捨五入も可能です。
正の値を記述、小数点以下を負の数値を指定すると整数部を四捨五入します。なお、四捨五入の桁数は省略できません。
使用の際は、「YEN(数値, 四捨五入の桁数)」というように、¥形式で表示する数値フィールドを記述し、次に四捨五入する桁数を記述します。小数点以下だけを四捨五入する場合は、「0」を記述しましょう。
この関数では、数値フィールドだけでなく計算式の記述もできます。
例えば、見積書の単価×数量といった明細行の小計を表示する場合、まずは小計を表示するための文字列フィールドを作成し、「自動計算する」にチェックを入れます。「YEN(単価*数量,0)」と記述すると、実際のアプリでは単価フィールドと数量フィールドが掛け算され、その結果が小計フィールドに表示されます。
AND
AND関数は条件式で使用する関数で、指定した条件がすべて成り立つ場合は「真」を返し、条件が1つでも成り立たない場合は「偽」を返します。
この関数は32個までの条件を指定できるため、複雑な条件にも対応できます。
条件式を記述する際には、「=, !=, <>, <, >, <=, >=」といった比較演算子の利用が可能です。
しかし、数値フィールドと文字列フィールドでは、使用できる比較演算子が異なるため注意しましょう。
数値フィールドの場合は、すべての比較演算子を使用できますが、文字フィールドの場合は使える比較演算子は「=, !=, <>」のみです。それぞれの比較演算子の働きについては、ここでは割愛します。
実際に使用する場合、「AND(条件式1,条件式2,…)」というように、それぞれの条件式をカンマで区切ることで、複数の条件式を指定できます。AND関数は条件分岐のための関数であす。単体で記述する必要はなく、IF関数と組み合わせて使用します。
例えば、テストの点数によってクラス分けをする場合、点数を入れる数値フィールドと、該当するクラスの文字列フィールドを作成し、「自動計算する」にチェックを入れます。
「IF(AND(点数>=0,点数<50),"Aクラス","Bクラス")」と記述すると、実際のアプリでは、点数が0点から49点の場合は「Aクラス」と表示され、そうでない場合は「Bクラス」と表示されます。
OR
OR関数は、AND関数と同じく条件式で使用する関数です。
ただし、AND関数とは違い、指定した条件のいずれかが成り立つ場合に「真」を返し、すべて成り立たない場合にのみ「偽」を返します。
OR関数もAND関数同様、32個まで条件指定が可能です。
条件式を記述する際に利用できる比較演算子も、AND関数と同様に、数値フィールドの場合はすべての比較演算子、文字フィールドの場合は「=, !=, <>」のみとなります。
使用する際は、AND関数と同様に「OR(条件式1,条件式2, …)」というように、IF関数との組み合わせで使用します。
テストの点数によってクラス分けするケースを例とした場合、まずは点数を入れる数値フィールドを作成します。その次に、該当するクラスの文字列フィールドを作成して「自動計算する」にチェックを入れましょう。
「IF(OR(点数<50,点数>=70),"Cクラス","Dクラス")」と記述すると実際のアプリでは、点数が50点より低い、もしくは70点以上の場合はCクラスと表示され、そうでない場合はDクラスと表示されます。
NOT
NOT関数は、AND関数やOR関数と同じく、条件式で使用する関数です。
指定した条件を反転させ、指定した条件が成り立たない場合は「真」を返し、成り立つ場合は「偽」を返します。
条件を1個しか指定できない点が、AND関数やOR関数と異なる点です。
なお、使用できる比較演算子は、数値フィールドと文字列フィールドともに、AND関数やOR関数と同様です。
実際に使用する場合「NOT(条件式)」というように、それぞれの条件式を1個指定できますが、複数条件は指定できません。
NOT関数も条件分岐の関数のため単体で記述せず、IF関数との組み合わせで使用する必要があります。
例えば、テストの点数が合格ラインに達しているかを判定するとします。
その場合、点数を入れる数値フィールドと、該当するクラスの文字列フィールドを作成し、「自動計算する」にチェックを入れます。
「IF(NOT(点数<50),"合格","不合格")」と記述すると実際のアプリでは、点数が50点より低い、という条件を反転させるため、50点より低くない場合が真となります。したがって、50点より低い場合は「不合格」と表示され、そうでない場合は「合格」と表示されます。
ROUND
ROUND関数は、指定された数値フィールドの数値を四捨五入するときに使う関数です。
四捨五入する桁数の指定もできます。指定した桁数が、正の値の場合は指定された小数点以下の桁数を四捨五入、負の値の場合は整数の指定桁数を四捨五入します。
例えば、ROUND関数の桁数に「2」を指定すると小数点以下第3位が四捨五入され、桁数に「-2」と指定すると十の位が四捨五入されます。
使用する際は「ROUND(数値[,桁数])」と、四捨五入する数値のフィールドコードを記述し、その後に桁数を指定します。
桁数は省略できますが、その場合は「0」が指定されたとみなされ、小数点以下が四捨五入されます。
商品の購入金額を消費税込みで表示するケースを例とします。まずは単価と数量の数値フィールドを作成して、フィールドコードもフィールド名と合わせましょう。
「購入金額」という計算フィールドを作成し、計算式に「ROUND((単価*数量)*1.1[,0])」と記述すると、「単価×数量」の消費税込みの金額が計算されます。
税込価格のように整数のみの表示の場合、桁数の省略ができます。
ROUNDDOWN
ROUNDDOWN関数は、指定された数値フィールドの数値を切り捨てるときに使う関数です。
切り捨てる桁数を指定でき、指定した桁数が正の値の場合は指定された小数点以下の桁数を切り捨て、負の値の場合は整数の指定桁数を切り捨てます。
例えば、桁数を「2」に指定した場合には小数点以下第3位が切り捨てられ、桁数に「-2」と指定すると十の位が切り捨てられます。
「ROUNDDOWN(数値[,桁数])」というように、切り捨てたい数値のフィールドコードを記述し、その後に桁数を指定します。
ROUND関数同様、桁数の省略も可能です。その場合は「0」が指定されたとみなされ、小数点以下が切り捨てられます。
とある学校における合格者の比率を計算するケースを例とします。
はじめに全体と合格者の数値フィールドを作成して、フィールドコードもフィールド名と合わせましょう。
「合格率」という計算フィールドを作成して、計算式に「ROUNDDOWN(合格者/全体,2)」と記述すると、全体に対する合格者の比率を計算し、少数点以下第3位が切り捨てられ、小数点以下2桁までが表示されます。
ROUNDUP
ROUNDUP関数は、指定された数値フィールドの数値を切り上げるときに使います。切り上げたい桁数の指定もできるのです。
指定した桁数が正の値の場合は指定された小数点以下の桁数を切り上げ、負の値の場合は整数の指定桁数を切り上げます。
例えば、ROUNDDOWN関数の桁数に「2」と指定した場合、小数点以下第3位が切り上げられ、「-2」と指定した場合、十の位が切り上げられます。
実際に使用する場合「ROUNDUP(数値[,桁数])」というように、切り上げたい数値のフィールドコードを記述し、その後に桁数を指定します。
ROUND関数やROUNDDOWN関数同様、桁数は省略できます。その場合は「0」が指定されたとみなされ、小数点以下が切り上げられます。
とある学校における合格者の比率を計算するケースを例とします。
全体と合格者の数値フィールドを作成して、フィールドコードもフィールド名と一致させましょう。
「合格率」という計算フィールドを作成して、計算式に「ROUNDUP(合格者/全体,2)」と記述します。そうすると、全体に対する合格者の比率が計算され、少数点以下第3位を切り上げた小数点以下2桁までが表示されます。
CONTAINS
CONTAINS関数は、指定されたフィールドで指定された選択肢が一致するかどうか判断する関数です。この関数では、チェックボックスまたは複数選択のフィールドコードを指定します。
チェックボックスを指定する場合は、チェックを入れたときにその選択肢と一致したとみなし、複数選択の場合は、選択肢と同じ文字列を選択した場合に選択肢と一致したとみなします。
この関数は、テーブル内の条件指定にも利用でき、テーブル内に指定された選択肢と一致する文字列が1つでもあれば一致したとみなします。
実際に使用する場合は「CONTAINS(フィールドコード, 選択肢名)」と、条件を判定するフィールドコードを記述し、その後に条件となる文字列を指定しましょう。また、CONTAINS関数は条件分岐の関数のため、IF関数との組み合わせで使用します。
顧客の入金確認がとれているかどうかを判定する場合、はじめに入金のチェックボックスフィールドを作成して、フィールドコードもフィールド名と合わせましょう。この場合、チェックボックスの項目は「済」とします。
「入金確認」という文字列フィールドを作成し、「自動計算する」にチェックを入れます。
「IF(CONTAINS(入金,"済"),"入金済み","未入金")」と記述すると、入金チェックボックスにチェックがついている場合には入金確認フィールドに「入金済み」、チェックがついていない場合には「未入金」と表示されます。
計算式を使ってみよう
kintoneアプリを作成する上で、関数の活用は避けては通れないでしょう。
データの入力だけであれば関数の知識はなくてもよいかもしれませんが、業務に役立てるアプリを作成するのであれば関数の知識は必須です。
関数を使いこなせば、より質のよいアプリの開発にもつながります。また、SUMやIFといった基本的な関数は、普段のExcelを利用する業務にも使用できるため、損はありません。
この機会に関数の知識を深めてみてはいかがでしょうか。
kintoneの便利な機能について、関連記事をご用意しております。併せてご参考にしてください。
▼kintone「関連レコード一覧」の便利な使い道は? 設定方法も解説
▼kintoneのルックアップ機能とは? 使い方や利用メリットを紹介
※本記事の内容は2021年3月時点のものです。kintoneの仕様や利用環境は変更する場合があります。
開発支援承ります
テクバンではkintoneの開発支援を受け付けております。日々の運用でお困りの方は以下より弊社サービスをご覧ください。
また、kintoneの標準機能に加えて、拡張機能であるプラグインを利用することで kintoneの活用の幅がより広がります。プラグイン選定から導入までサポートいたします。
kintone開発支援サービス
kintoneプラグイン