
No.5ベストアンサー
- 回答日時:
こんばんは
とりあえず大きな勘違い
>2006年3月31日時点での年齢を計算したいので
こちらを考えていませんでした。
=YEAR(TODAY())-LEFT(A1,4)-(DATE(YEAR(TODAY()),MID(A1,6,2),RIGHT(A1,2))>TODAY())
この式は「今日現在の年齢」を求める計算式になります。
DATE(YEAR(TODAY()),MID(A1,6,2),RIGHT(A1,2))
この部分で「その人の今年の誕生日」を求めています。
A1に1805/09/05と入力されていれば 今年の誕生日は 2005/09/05
A1に1805/09/08と入力されていれば 今年の誕生日は 2005/09/08
DATE(YEAR(TODAY()),MID(A1,6,2),RIGHT(A1,2))>TODAY()
比較演算子 > を使う事でこの部分は「倫理式」となります。
(この式の先頭に = を付けて空いているセルに入力して確認してみて下さい)
「その人の今年の誕生日」と 今日現在(2005/9/7)の日付を > で比べることで、
TUREかFALSEが返ります。
DATE(YEAR(TODAY()),MID(A1,6,2),RIGHT(A1,2))>TODAY()
2005/9/5>2005/9/7 ←今年の誕生日が来ていればFALSE
2005/9/8>2005/9/7 ←今年の誕生日がまだならばTRUE になります。
倫理値FALSEは 0(ゼロ) TRUEは 1 として扱われます。
なので
1805/09/05生まれの人の今日現在(2005/09/07)の年齢は
=YEAR(TODAY())-LEFT(A1,4)-(DATE(YEAR(TODAY()),MID(A1,6,2),RIGHT(A1,2))>TODAY())
=2005-1805-FALSE
=2005-1805-0
=200 (200歳、今年の誕生日はもう来ている)となります。
1805/09/08生まれの人の今日現在(2005/09/07)の年齢は
=YEAR(TODAY())-LEFT(A1,4)-(DATE(YEAR(TODAY()),MID(A1,6,2),RIGHT(A1,2))>TODAY())
=2005-1805-TURE
=2005-1805-1
=199 (199歳、今年の誕生日はまだ来ていない)となります。
>2006年3月31日時点での年齢
ならば
=2006-LEFT(A1,4)-(DATE(2006,MID(A1,6,2),RIGHT(A1,2))>DATE(2006,3,31))
とすればいいのではないかと思います。
(あまり深く検証していないので、間違っていたらゴメンナサイ)
※制限条件
誕生日を入力するセル(この式の場合A1)
はあらかじめ「文字列」としておいて
西暦4桁/月2桁/日2桁 1980/01/07 のように
入力しておく必要があります。
ちなみに上記の式で
誕生日が2005/03/31の人の2006年3月31日時点での年齢は 1(歳)
誕生日が2005/04/01の人の2006年3月31日時点での年齢は 0(歳)
と計算されたので多分大丈夫だと思いますが。。。
No.4
- 回答日時:
A1に文字列(1900年以前は自動的に文字列になりますが)として"1800/4/1"のような日付が入っていて
B1に日付として2006/3/31のような日付(シリアル値)が入っているとすると
=YEAR(B1)-LEFT(A1,FIND("/",A1)-1)-(DATE(YEAR(NOW()),MONTH(B1),DAY(B1))>DATEVALUE(MID(A1,FIND("/",A1)+1,LEN(A1))))
のようにします。
単純に年を引き算して、その月日がまだ過ぎてなければさらに1を引きます。
(1900年以前と以後を)統一的に扱うには、B1も文字列として入力した方がいいような気がしますが、基本的に未来の日付であるなら、問題ないです。
No.3
- 回答日時:
一旦100年ほど足して計算させてみては?
生まれた年に1000年足して、3007年の誕生日を
計算してみるとか。
(日数まで計算したいなら、閏が入って微妙にずれますが。)
No.2
- 回答日時:
1800年代生まれで今生きてる方はいないと思いますが...
A2:誕生日として
=IF(ISTEXT(A2),DATEDIF(SUBSTITUTE(A2,"18","19",1),"2007/3/31","y"),DATEDIF(A2,"2006/3/31","y"))
として100年ずらせば計算できます。
No.1
- 回答日時:
この回答への補足
Kaisendonさま
早速回答を頂ありがとうございます。
参考のHPを拝見させていただきましたが、式の
内容がよく分かりませんでした。
もし、式の内容が分かれば解説をお願いしたのですが。
=YEAR(TODAY())-LEFT(A1,4)
-(DATE(YEAR(TODAY()),MID(A1,6,2),RIGHT(A1,2))>TODAY())
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
月の最後の週の呼び名は?
-
「6月まで」というのは6月以内...
-
カレンダーの日付 5/Bの意味に...
-
エクセルのフィルターを複数シ...
-
10月をもって辞めるって、10...
-
総会の年度表記について
-
入社が2月1日とした場合、3ヶ月...
-
自治会の通常総会の年度について
-
8月までっていつまでのことでし...
-
「おじろく」は長男が死んだら...
-
Excel 半月毎の集計方法
-
「1年以上」の定義について
-
『無線LANが切れる時、何かイベ...
-
秋ですねぇ!!
-
日本文化の中の七という数字の意味
-
ピボットテーブルで列ラベルに...
-
早生まれであることにコンプレ...
-
何故か毎年3月や4月に不運が続...
-
高校生カップルがクリスマスにH...
-
VBAで先月、先々月を求める方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
月の最後の週の呼び名は?
-
カレンダーの日付 5/Bの意味に...
-
「6月まで」というのは6月以内...
-
自治会の通常総会の年度について
-
エクセルのフィルターを複数シ...
-
10月をもって辞めるって、10...
-
8月までっていつまでのことでし...
-
入社が2月1日とした場合、3ヶ月...
-
確認ですが普通5月までに決める...
-
総会の年度表記について
-
昔は何歳くらいからお酒を飲ん...
-
「1年以上」の定義について
-
定年になる年度を関数で算出したい
-
「なんで付き合おうと思ったか...
-
昔の愛称?「~の字」
-
満何歳の意味
-
月度ってどういう意味ですか
-
○年後の3月末日を関数で出したい
-
本願寺教如書状
-
VBA ユーザーフォームのChange...
おすすめ情報