マイスター index
生年月日と年齢の計算 (mm0601)
生年月日と年齢の計算についてわかりやすく説明します
シリアル値
- シリアル値は日付や時刻を数値で表した値です → シリアル値
(tp0049)
- =TODAY() 関数で得られるのは本日日付のシリアル値です → TODAY 関数
(1) 単純に本日現在の[年]を求める
- セルA1に =year(today()) と入力すると
- セルA1に[年]が 2004 のように表示されます
- ( =year(xxx) シリアル値の[年]部分を求める関数です )
- year:詳しくはこちら → YEAR 関数
(2) 生年月日から本日現在の[年齢]を求める
- セルA4に 1979/4/14 と入力されているとき
- セルB4に =datedif(A4,today(),"y") と入力すると
- セルB4の[書式(O)]メニュー→[セル(E)]→[表示形式]を[標準]にします
- セルB4に本日現在の[年齢]が 25 のように表示されます
- ( =datedif() は引数1と引数2の間の日数や年数を求める関数です。引数3の "y" は "Y" でも同様です)
- datedif:詳しくはこちら → DATEDIF 関数
(3) 生年月日から4月1日現在の[年齢]を求める(↓間違いを訂正済み)
- セルA7に 1979/4/14 と入力されているとき
- セルB7に =datedif(A7,date(year(today()),4,1),"Y") と入力すると
- セルB7に4月1日現在の[年齢]が 24 のように表示されます
- (誕生日から今年の4月1日現在までの年数を求めます)
(4) 生年月日から[数え年]を求める
- セルA10に 1979/4/14 と入力されているとき
- セルB10に =datedif(A10,date(year(today()),12,31),"Y")+1 と入力すると
- セルB10に[数え年]が 26 のように表示されます
(5) 生年月日が別々のセルに入っている場合に[年齢]を求める
- セルA13 に 1979 セルB13 に 4 セルC13 に 14 と別々に入力されているとき
- セルD13 に =datedif(date(A13,B13,C13),today(),"y") と入力すると
- セルD13 に本日現在の[年齢]が 25 のように表示されます
(6) 生年月日から[干支]を求める2つの方法
- 方法1
- セルA16に 1979/4/14 と入力されているとき
- セルB16に
=choose(mod(year(A16),12)+1,"申","酉","戌","亥","子","丑","寅","卯","辰","巳","午","未") と入力すると
- セルB20 に[干支]が 未 のように表示されます
- 方法2
- セルA19に 1979/4/14 と入力されているとき
- セルB19に =mid("申酉戌亥子丑寅卯辰巳午未",mod(year(A19),12)+1,1) と入力すると
- セルB19 に[干支]が 未 のように表示されます
-
[[20030916160145]] 『生年月日から干支を表示する方法』(アメハイ)
を参考に作成、
[Yosh!]さん[シニア]さん[jun53]さんに感謝
関連ページ
参考ページ
今回は数が多いので、回答者の方を紹介できませんでした、謝々。
(9) ExcelのHELPにdatedifが表示されない理由
- datedif は元々表計算ソフトLotus-123 の関数互換用に組み込まれました
- 従って、ExcelのHELPには表示されません
(10) 間違いの訂正
- [ちゅうねん]さんから間違いの指摘がありました
> エクセル・マイスター2004/06/01版
> (3)生年月日から4月1日現在の[年齢]を求める
> セルA7に 1979/4/14 と入力されているとき
誤> セルB7に =datedif(A7,date(year(today()),4,1),"Y")+1 と入力すると
正> セルB7に =datedif(A7,date(year(today()),4,1),"Y") と入力すると
誤> セルB7に4月1日現在の[年齢] 25 が表示されます。
正> セルB7に4月1日現在の[年齢] 24 が表示されます。
> (誕生日から今年の4月1日現在までの年数を求めます)
2022/01/16:更新 2004/06/01:登録 訪問者: