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