kintoneの標準機能では、アプリのフィールドに計算式を設定すると、入力された値に沿って自動で算出します。手動で合計値を入力したり計算したりする手間を省けるため、ヒューマンエラーやミスの削減につながる便利な機能です。
kintoneの計算機能を活用して、ユーザーの年齢を算出する方法やプラグインについてご紹介します。組織のユーザー管理に役立てられるため、kintoneでユーザー管理を担当されている方はぜひご参考にしてください。
kintoneの計算機能とは
kintoneのアプリは、計算式を設定し、設定した計算式に沿って自動で値を算出できます。
例えば「単価」「数量」「合計」フィールドを作成し、「合計」フィールドに単価と数量をかけ合わせた計算式を設定すれば、合計金額が自動入力される仕組みです。様々な計算が可能なため、手間がかからず入力ミスや計算ミスを防げます。
計算式を設定する際に、気を付けるポイントが3つあります。
- 「計算」フィールド、または「文字列(1行)」フィールドで計算式を設定
- 計算式を入力するときは、フィールドコードを利用
- 計算式には、演算子や関数を利用
フィールドコードとは、一つひとつのフィールドを識別するための文字列です。計算式ではフィールドコードを利用して他のフィールドを参照し、計算します。フィールドは任意の文字で設定できますが、基本的にはフィールド名と同じにしておくとわかりやすいでしょう。
また、計算式では半角の「+」「-」「*」「/」などの演算子や、「SUM」「IF」などの関数を利用できます。kintoneの演算子・関数については、こちらのページをご覧ください。
演算子と関数の一覧
kintoneの計算について、下記記事にて詳細を解説しています。
▼kintone計算式の設定|使い方・関数一覧・利用シーンを紹介
標準機能で年齢を計算する方法
ここでは、kintoneの標準機能で年齢を計算する方法について紹介します。
計算の前提として、kintoneでは「1時間=3,600秒」で計算することを念頭に置いておきましょう。そして「本日の日付-ユーザーの生年月日」で出た数値を24時間にあたる86,400秒で割ることで、日数差を算出。そこから日数差を1年の日数である365で割ると、年齢を算出できる、という流れです。
以下の手順に沿って、計算式を設定してみましょう。
- アプリの設定画面から「本日の日付」「生年月日」「年齢」フィールドを配置。フィールド名とフィールドコードも同様に設定する
- 「年齢」フィールドの設定画面を開き、「計算式」に”(本日日付-生年月日)/86400/365”を入力
- 小数点以下の表示桁数に「0」を入力し、[保存]ボタンをクリック
- レコード登録画面に移り、「本日の日付」「生年月日」を入力すると「年齢」フィールドに数値が自動で計算されたら完了
標準機能での年齢計算の注意点
kintone標準機能での年齢計算において、以下の注意点があります。
- 登録したレコードは自動更新されない
- うるう年は考慮されていない
レコードに計算式を設定して算出した年齢は、自動で更新されません。ユーザーが誕生日を迎えるたびに「本日の日付」を再入力してレコードを更新しなければならないのは、非効率な業務だといえるでしょう。計算の自動反映が意味をなさない機能となってしまいます。
また、うるう年は考慮されていないため、誕生日によって誤差が生じてしまいます。基本的にうるう年を考慮しなくても年齢は大きくずれませんが、ユーザーの生年月日からうるう年のずれが生じるかどうかいちいち確認することも非効率でしょう。
うるう年を考慮した年齢計算
前章にて、標準機能の計算ではうるう年は考慮されないと説明しましたが、レコードの更新日を基準値としてうるう年を考慮する方法もあります。
アプリ設定のフォームにて、以下の通りフィールドを設定してください。
フィールド名 | フィールドコード | |
更新日時フィールド | 更新日時 | 更新日時 |
計算フィールド | 更新日時_01 | 更新日時_01 |
日付フィールド | 生年月日 | 生年月日 |
計算フィールド | 生年月日_01 | 生年月日_01 |
計算フィールド | 年齢 | 年齢 |
上記5つのフィールドを設定したら、3つの計算フィールドに以下の計算式を設定します。
計算式 | |
「更新日時_01」フィールド | DATE_FORMAT(更新日時,"YYYYMMdd","system") |
「生年月日_01」フィールド | DATE_FORMAT(生年月日,"YYYYMMdd","system") |
「年齢」フィールド | ROUNDDOWN((更新日時_01-生年月日_01)/10000,0) |
各フィールドの設定をしたら[保存]ボタンをクリックし、アプリを公開・更新してください。フィールドの計算式が実際に反映されます。
上記の設定は、生年月日と更新日時を「DATE_FORMAT関数」を利用して日次形式の値に変換し、その差を計算する仕組みです。
計算結果の「万の位から上位」が年齢を表すため、計算結果を「10000」で割り、「ROUNDDOWN関数」で小数点以下を切り捨てます。
DATE_FORMAT関数とROUNDDOWN関数の解説
DATE_FORMAT関数は、日時や日付などの値を指定した形式の文字列に変換する関数です。日付や時刻、他の文字列と結合する場合にもDATE_FORMAT関数を使用します。
DATE_FORMAT(日時, "日時の形式", "タイムゾーン")
第1引数(日時)、第2引数(日時の形式)、第3引数(タイムゾーン)を指定し、第1引数「日時」は、フィールドコード・UNIX時刻・計算式を入力します。
「UNIX時刻」とは、1970年1月1日午前0時(協定世界時)からの経過秒数のことです。例えば、日時が2024年4月1日午前0時(協定世界時)の場合、UNIX時刻は「1711897200」となります。
第3引数のタイムゾーンで「system」を指定すると、cybozu.com共通管理で設定されているタイムゾーン(システムタイムゾーン)が適用されます。
ROUNDDOWN関数は、指定した桁数で数値の切り捨てを行います。
ROUNDDOWN(数値, [桁数])
「桁数」は省略でき、省略した場合は「0」を指定したとみなされます。引数には桁数を指定し、小数点以下の桁を処理する場合は「正の数」を指定、小数点の左側(整数)を処理する場合は「0」または「負の数」を指定します。
「数値」に指定できるのは、数値のフィールドコード・値が数値の計算式・数値です。
年齢を算出するプラグイン
これまで紹介した設定をしなくても、年齢を算出するプラグインを導入すれば正確でラクに年齢を算出できるようになります。以下3つのプラグインについて紹介します。
- 年齢算出プラグイン/ノベルワークス社
- 年齢自動計算プラグイン/Ribbit's works
- 暦・年齢変換プラグイン/日立ケーイーシステムズ社
年齢算出プラグイン/ノベルワークス社
ノベルワークス社から提供されている「年齢算出プラグイン」は、指定された年月日から本日時点での年齢や経過年月日を算出するプラグインです。経過期間を自動で再算出するため、手作業での更新は必要ありません。
プラグイン設定画面から入力となる「日付」フィールドと、算出結果を出力するフィールドを選ぶだけで設定完了です。「日付」フィールドに入力された年月日から本日日付を基準に年齢(もしくは経過期間)を算出し、指定したフィールドに値を出力します。
また、「日付」フィールドに入力された値は、レコード編集イベント・レコード一覧イベント時に再計算し、一括で自動更新されます。
年齢自動計算プラグイン/Ribbit's works
Ribbit's worksの「年齢自動計算プラグイン」は、レコード作成時に「日付」フィールドを基に「年齢」フィールドを自動計算します。
また、レコード編集時に「日付」フィールドを変更した場合、「年齢」フィールドを自動で更新します。登録時の情報を保持したい場合は、年齢を更新しない設定も可能です。
年齢を自動計算したいけれど、自動的にレコードに更新されるのは困るというときは、こちらのプラグインがおすすめです。
和暦・年齢変換プラグイン/日立ケーイーシステムズ社
日立ケーイーシステムズ社の「和暦・年齢変換プラグイン」は、「日付」「日時」フィールドを和暦変換し、かつ年齢算出もできるプラグインです。
例えば、レコードに「1990-04-01」と西暦で登録されていても、和暦表示では何年になるのか一目ではわかりづらいでしょう。しかし、このプラグインを利用すれば、生年月日から和暦と年齢を自動で表示するため、煩わしさが解消されます。
レコード一覧画面にて一括で和暦変換・年齢計算が可能で、未来の年号にも対応している特長があります。また、現在日時との差分を計算するため、現在の勤続年数の表示にも活用できます。
JavaScriptで年齢計算できる?
JavaScriptのカスタマイズを行えば、プラグインを導入しなくても自動での年齢計算が可能です。しかし、高度なコード記述が必要なため、初心者の方には少し難しいかもしれません。また、JavaScriptカスタマイズには「スタンダードコース」の契約が必要となります。
cybozu developer networkにて参考となるJavaScriptのサンプルコードが公開されていますが、コードの内容をしっかりと理解した上で、kintoneにJavaScriptを反映させましょう。コードを理解し取り扱えるスキルに加え、JavaScriptカスタマイズによる不具合が生じたときに対応・解決できるスキルが求められます。
自身でJavaScriptのカスタマイズが難しいと感じたときは、kintoneベンダー企業に相談することをおすすめします。
kintoneの計算式を活用しよう
kintoneの計算式を活用すれば、入力作業の削減や業務効率化、数値の整合性向上につながるでしょう。比較的容易な計算式であれば、非エンジニアでも簡単に設定できるため、積極的に計算式を利用してみましょう。
計算式の設定でお困りごとがありましたら、ぜひテクバンまでお気軽にご相談ください。JavaScriptのカスタマイズやプラグインの選定・導入まで、幅広くお客様のご要望に対応いたします。
※本記事の内容は2024年7月時点のものです。kintoneの仕様や利用環境は変更する場合があります。
開発支援承ります
テクバンではkintoneの開発支援を受け付けております。日々の運用でお困りの方は以下より弊社サービスをご覧ください。
また、kintoneの標準機能に加えて、拡張機能であるプラグインを利用することで kintoneの活用の幅がより広がります。プラグイン選定から導入までサポートいたします。
kintone開発支援サービス
kintoneプラグイン