kintone計算フィールド完全ガイド 使い方と「経過日数が止まる」弱点の解決法【2026年版】
本記事は、kintone(キントーン)の構築・カスタマイズの実務経験をもとに、計算フィールドの使い方と「思ったように更新されない」つまずきの直し方を整理したものです。
計算フィールドは、kintoneの中でもとっつきにくい機能のひとつ。四則演算だけなら簡単ですが、日付の差分や年齢のように「今日」を絡めた計算になると、途端に思わぬ落とし穴にはまります。
この記事で分かることは次のとおりです。
- 計算フィールドでできること・書き方の基本(数値・日付・文字列・条件式)
- 経過日数や年齢が古い値のまま止まる理由と、その正体
- 標準の工夫・JavaScript・プラグインという3つの解決法と使い分け
- 設定だけで「今日基準」の値を出し続ける方法
1. kintoneの計算フィールドとは
まずは基本から。計算フィールドは、ほかのフィールド(アプリの入力項目)の値を使って自動で計算し、その結果を表示する項目です。Excelの数式セルに近い感覚で使えます。
設定画面の「計算」欄にフィールドコードを使った式を入れるだけで、電卓を叩く手間なく合計や差分が求まります。
1.1 数値の計算(四則演算・集計)
もっとも基本的な使い方が、数値項目どうしの計算です。
- 合計:
単価 * 数量 - 税込金額:
小計 * 1.1 - 粗利率:
(売上 - 原価) / 売上 * 100
SUM() を使えばテーブル(サブテーブル)の列合計も出せます。四則演算と ROUND・ROUNDDOWN・ROUNDUP(四捨五入・切り捨て・切り上げ)を組み合わせれば、見積・請求まわりの金額計算はほぼカバーできます。
1.2 日付の計算(経過日数・N日後)
日付フィールドを式に使うと、kintoneは内部でその日付を秒数として扱います。ここが日付計算のクセです。1日=60 * 60 * 24=86,400秒として換算します。
- 2つの日付の経過日数:
(終了日 - 開始日) / (60*60*24) - 今日から〇日後の日付:
日付 + (60*60*24 * 30)(30日後)
期間を出したいだけなら、計算フィールドの表示形式を「日数」「月数」「年数」から選ぶ方法もあります。開始日と終了日を引き算し、表示形式を切り替えるだけで期間が求まります。
1.3 文字列の連結・条件分岐
計算フィールドは文字列や条件式も扱えます。
- 文字列連結:
都道府県 & 市区町村 & 番地 - 条件分岐:
IF(金額 > 10000, "要承認", "通常")
IF を入れ子にすればランク判定なども可能ですが、複雑になりすぎると保守が大変になります。3段以上の入れ子になりそうなら、ドロップダウンやプロセス管理で持たせるほうが後々ラクです。
ヒント:計算式で使うのは「フィールド名」ではなく「フィールドコード」です。日本語名のままだとエラーになりやすいので、コードを確認してから式を組みましょう。
2. 計算フィールドがハマりやすい「3つの限界」
ここからが本題です。金額計算はうまくいくのに、日付がらみになると「値が合わない」「昨日から変わっていない」という相談をよく受けます。原因は計算フィールドの仕様上の限界にあります。
2.1 最大の弱点:計算は「保存したとき」しか走らない
kintoneの計算フィールドは、レコードを保存した瞬間にだけ再計算されます。裏を返せば、保存後は誰かが開き直して保存しない限り、値はずっとそのままです。
Excelには開くたびに今日の日付を返す TODAY() がありますが、kintoneの計算式に相当する関数はありません。そのため「契約日からの経過日数」を計算フィールドで作っても、次のような事故が起こります。
- 4月に登録したレコードの経過日数が、7月に見ても4月時点の値のまま
- 一覧に「経過日数」列を並べても、レコードごとに最終保存日がバラバラで横並びで比較できない
日付を絡めた計算フィールドは「登録した瞬間のスナップショット」だと理解しておくのが安全です。

2.2 年齢・勤続年数は標準では作りにくい
「今日」を基準にする計算は、この弱点の直撃を受けます。代表格が年齢や勤続年数です。
生年月日から年齢を出す式は一応組めますが、TODAY() が無いため基準となる「今日」を式に埋め込めません。誕生日が来ても値は自動では増えず、レコードを開いて保存し直すまで去年の年齢のまま。会員名簿や従業員名簿では地味に困る問題です。
うるう年(2/29生まれ)の加齢や、4/1基準の学年判定まで正しく出そうとすると、標準式だけではかなり無理が出てきます。
2.3 並び替え・絞り込みに使うには「実データ」が要る
一覧での並び替えや絞り込み、集計は、あくまで保存済みの実データに対して働きます。表示だけを今日基準に見せても、裏のデータが古ければ「残日数が少ない順」で並べたときに正しく並びません。
つまり「今日の値を見せる」ことと「今日の値で並べ替える・絞り込む」ことは別問題。後者には、実フィールドへ今日の値を書き込んでおく仕組みが必要になります。
3. 経過日数・年齢を「今日基準」で保つ3つの方法
弱点が分かったところで、解決法を整理します。大きく3つ、それぞれ手間と精度が違います。

| 方法 | 手間 | 自動更新 | 向くケース |
|---|---|---|---|
| 標準の工夫 | 小 | ×(開いて保存が必要) | 精度をあまり求めない、件数が少ない |
| JavaScript | 大 | △(実装しだい) | 自由に作り込みたい・開発体制がある |
| プラグイン | 小 | ○(開くたびに再計算) | 設定だけで確実に運用したい |
3.1 標準機能の工夫でしのぐ
コストをかけずに済ませたいなら、運用でカバーする手もあります。
- 経過日数の列を用意し、月初にレコードを一括で開いて保存し直す
- 年齢は「生年月日」だけ持ち、年齢そのものはレポート出力時に別途計算する
ただし、これは手作業が前提。件数が増えるほど保存し直しの負担が重くなり、更新漏れも起きます。数十件までの小さなアプリ向けの割り切った方法です。
3.2 JavaScriptカスタマイズで組む
自由度は最も高い方法です。kintone.events.on で一覧・詳細の表示時に今日の日付で計算し、画面に反映できます。定期的に全レコードを更新したい場合は、REST APIで夜間バッチを回す構成も取れます。
一方で、開発と保守のコストがかかります。作った本人が異動すると誰もメンテできない、いわゆる「野良カスタマイズ」になりがちな点にも注意が必要です。社内に開発できる人がいる場合の選択肢です。
3.3 プラグインで設定だけで解決する
「コードは書きたくないが、確実に今日基準にしたい」なら、日付計算に特化したプラグインが現実的です。設定画面で基準日フィールドと出力先を選ぶだけで、経過日数や年齢の自動計算が入ります。
kintone標準の弱点をピンポイントで埋める手段なので、開発体制がなくても運用に乗せられます。次の章で、当社の経過計算アシスト for kintoneを例に具体的に紹介します。
4. 「経過計算アシスト for kintone」で計算フィールドの弱点を埋める
経過計算アシスト for kintoneは、基準日フィールドから経過日数・年齢・在籍期間などを計算し、一覧・詳細を開くたびに「今日」時点の値へその場で計算し直すプラグインです。JavaScriptなしで、設定だけで導入できます。

4.1 何が変わるのか
このプラグインの要は、2.1で挙げた「保存時しか計算されない」問題を正面から解いている点です。
- 一覧や詳細を開くたびに今日基準で再計算して表示(このとき追加のAPIは使いません)
- レコード保存時には実フィールドへ値を書き込むので、並び替え・絞り込み・集計にもそのまま使える
- 既存レコードは一括再計算ボタンでまとめて最新化できる
「表示は今日基準」「データも今日基準で確定できる」——2.1〜2.3の限界をひととおりカバーする設計です。

一覧に「在籍期間」「年齢」「誕生日まで」の列が並び、どのレコードも同じ「今日」で計算されています。ツールバーの今すぐ再計算ボタンを押せば、絞り込み中のレコードをまとめて最新化して保存できます。

4.2 計算できる9パターン
生年月日や契約日といった1つの日付フィールドから、次のパターンを出力先フィールドへ出せます。
- 経過日数 / 経過月数 / 経過年数
- 年齢(うるう年2/29生まれの加齢も考慮)
- 残日数(期限超過はマイナス表示)
- 在籍期間などの「〇年〇ヶ月」表示
- 次回記念日までの日数
- 稼働日ベースの日数(土日を除外)
- 学年の自動算出(4/1基準)
年齢も学年も、2.2で「標準では作りにくい」とした計算です。式を組まずに選ぶだけで済みます。

生年月日を入れておくだけで、詳細画面でも年齢と「誕生日まで何日か」が今日基準で表示されます。
4.3 「対応日数」を止めておける停止条件
経過日数は、放っておくとどこまでも伸び続けます。しかし実務では「対応が完了したら、そこで日数を止めたい」場面が多いはず。
このプラグインは、ステータスや日付・フィールド値の条件(最大5件・AND/OR)を満たした時点でカウントを止め、その日の値で固定できます。使い方の例を挙げます。
- 問い合わせ管理:ステータスが「完了」になった日で対応日数を確定
- 契約管理:解約日が入ったら、そこまでの契約期間を固定
- 人事:退職日を基準に、在籍期間を止める

停止条件は「値が入ったら止める」だけでなく、止めた時点を過去の日付フィールドの値に合わせることもできます。上の例では、退社日が入ったらその日を終点にして在籍期間を固定しています。
4.4 導入の手順

設定はこの1画面で完結します。基準日と計算パターン、出力先を選ぶだけです。
- プラグインを読み込み、対象アプリに適用する
- 設定画面で「計算ルール」を追加し、基準日フィールド(例:契約日・生年月日)を選ぶ
- 計算パターン(経過日数・年齢など)と出力先フィールドを指定する
- 必要に応じて停止条件・一括再計算ボタンを設定して保存する
これだけで、以降は一覧・詳細を開くたびに今日の数字が並びます。
動作環境:kintone標準機能・ゲストスペースに対応。外部サービスへデータを送らず、kintone内で完結します。
5. ケース別の選び方
最後に、どの方法を選ぶかの目安を整理します。
- 件数が少なく、更新頻度も低い → 標準機能+手動保存で十分
- 金額や在庫など、保存のたびに確定すればよい計算 → 標準の計算フィールドで完結
- 経過日数・年齢・残日数を「常に今日基準」で見たい/並べたい → 経過計算アシストのようなプラグインが確実
- 独自ロジックを細かく作り込みたい・開発体制がある → JavaScriptカスタマイズ
計算フィールドは強力ですが、「今日」が絡む計算は苦手分野。そこだけを補う道具を足すのが、いちばん手戻りの少ない進め方です。
まとめ
- kintoneの計算フィールドは保存時にしか再計算されない。
TODAY()に相当する関数がないため、経過日数や年齢は古い値で止まりやすい。 - 日付は内部で秒数扱い。経過日数は
(終了日 - 開始日) / (60*60*24)で求める。 - 「今日基準」を保つ解決法は、標準の工夫・JavaScript・プラグインの3つ。手間と確実性で選ぶ。
- 設定だけで今日基準を維持したいなら、経過計算アシスト for kintoneが近道。9パターンの計算+停止条件+一括再計算まで対応する。
kintoneの計算まわりでお困りごとがあれば、お問い合わせからお気軽にご相談ください。ほかのプラグインはプラグイン一覧から、自動採番の考え方などの関連記事もあわせてご覧いただけます。


