記事番号:0104
kintoneでは、今日を基準日とした年齢の自動計算はできません。
なお、更新日時フィールドや日付フィールドを利用し、生年月日との差から年齢を計算する方法があります。
※ レコードの更新日時点での年齢を計算する場合は更新日時フィールド、特定の日付時点での年齢を計算する場合は日付フィールド、日時フィールドを活用します。
ここでは、レコードの更新日を基準日として、うるう年を考慮せずおおよその年齢を計算する簡易的な方法と、うるう年を考慮して年齢を計算する方法の2通りについて説明します。
<方法1:うるう年を考慮しない>
うるう年を考慮せず1年を365日と考え、生年月日から更新日時までの年数を年齢として計算します。
実際の年齢より高く算出されることがあります。
○準備
アプリ設定のフォームで以下のフィールドを配置し、それぞれにフィールド名とフィールドコードを設定します。
- 更新日時フィールド
・フィールド名:更新日時
・フィールドコード:更新日時
- 日付フィールド
・フィールド名:生年月日
・フィールドコード:生年月日
- 計算フィールド
・フィールド名:年齢
・フィールドコード:年齢
○計算式の設定
計算フィールドに以下の計算式を設定します。
計算フィールドの「小数点以下の表示桁数」は「0」に設定してください。
- 「年齢」フィールド
(更新日時-生年月日)/ (60*60*24*365)
○計算式の解説
1年を365日として、更新日時と生年月日の差の年数を計算します。
補足
「生年月日」フィールドが空欄の場合、1970年1月1日として計算されます。
「生年月日」フィールドが空欄のときは「年齢」フィールドも空欄にするには、「年齢」フィールドに以下の計算式を設定します。
- IF(生年月日="","",(更新日時-生年月日)/ (60*60*24*365))
<方法2:うるう年を考慮する>
うるう年を考慮し、生年月日から更新日時までの年数を年齢として計算します。
○準備
アプリ設定のフォームで以下のフィールドを配置し、それぞれにフィールド名とフィールドコードを設定します。
- 更新日時フィールド
・フィールド名:更新日時
・フィールドコード:更新日時
- 計算フィールド
・フィールド名:更新日時A
・フィールドコード:更新日時A
- 日付フィールド
・フィールド名:生年月日
・フィールドコード:生年月日
- 計算フィールド
・フィールド名:生年月日A
・フィールドコード:生年月日A
- 計算フィールド
・フィールド名:年齢
・フィールドコード:年齢
○計算式の設定
計算フィールドに以下の計算式を設定します。
- 「更新日時A」フィールド
DATE_FORMAT(更新日時,"YYYYMMdd","system")
- 「生年月日A」フィールド
DATE_FORMAT(生年月日,"YYYYMMdd","system")
- 「年齢」フィールド
ROUNDDOWN((更新日時A-生年月日A)/10000,0)
○計算式の解説
更新日時と生年月日を、DATE_FORMAT関数を使用して日時形式の値に変換し、その差を計算します。
計算結果の万の位から上位が年齢を表すため、計算結果を「10000」で割り、ROUNDDOWN関数を使用して小数点以下を切り捨てます。
補足
「生年月日」フィールドが空欄の場合、1970年1月1日として計算されます。
「生年月日」フィールドが空欄のときは「年齢」フィールドも空欄にするには、「年齢」フィールドに以下の計算式を設定します。
- IF(生年月日="","",ROUNDDOWN((更新日時A-生年月日A)/10000))
<ヒント>
JavaScriptカスタマイズ機能や拡張機能を利用することでも、年齢を計算できます。
API、カスタマイズ、プラグインや連携サービスに関する問い合わせJavaScriptカスタマイズによる年齢の計算については、開発者向けサイトcybozu developer networkの次のページを参照してください。
拡張機能を利用したサービスを探すには、次のページを参照してください。検索窓にキーワードを入力して検索します。
拡張機能(日本語のみ)
補足
レコードを登録したあとに、計算フィールドを追加/編集した場合は、レコードを更新することで、既存レコードに計算結果が反映されます。
FAQ:あとから計算フィールドを追加/編集した際に、既存レコードに反映する方法を教えてください。
固定リンクをコピーします
固定リンクがコピーされました