• ベストアンサー

エクセル 学年

エクセルで生年月日から学年(産まれた年)を割り出すには、どのようにすればいいですか? A1に1991/7/2 と生年月日が入っていて B2に91年 とデータが入るようにしたいです また、早生まれ B1に1992/1/21 と生年月日が入っている場合 B2に91年 とデータが入るようにしたいです

質問者が選んだベストアンサー

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.9

No.8です! たびたびごめんなさい。 前回の投稿で間違いがありました。 前者の数式の表示形式は >0"年" ではなく >yy"年" にしてください。 とんでもない数値になってしまいます。 ※ 後者の数式の場合は前回の説明通りです。 何度も失礼しました。m(_ _)m

その他の回答 (10)

  • cj_mover
  • ベストアンサー率76% (292/381)
回答No.11

#2、5、cjです。 私が#2で触れた「閏年」の件、混乱するといけないので、フォローです。 "生年月日から学年(産まれた年)を割り出す" という課題について「閏年」は直接関係ありません。 (関係なくもないけど大して問題ない) ただ、"生年月日から学年(産まれた年)を割り出す" という整理の仕方では対応しきれずに、 「現在の学年」とか「年度年齢」が 結局、必要になるケースが多いので、 いづれ必要になるのでは?と考えて 「閏年」に対応し易い数式を提示しておこうと思った ということです。 このスレッドで求められている答えが どのような'必要'によるものか、 どの程度考慮に入れれば'十分'なのか、 という確認抜きに老婆心的に書いただけですので 何がこの場の正解なのかは私もよく解りません。 以上補足として。

  • Nouble
  • ベストアンサー率18% (330/1783)
回答No.10

いっそのこと閏年処理はExcelに任せては如何でしょうか? 同年12月までが本来は同年表示の所を、 翌年3月まで同年表示にしたい。 言い換えれば 3ヶ月先まで同年表示にしたい。 と、いうことですよね? 「月」を3ヶ月遡らせれば良いのじゃないですか? も、いちょ 言い換えれば 月を3減じれば良いのじゃないですか? と、いうことで =MOD(YEAR(DATE(YEAR(A1),MONTH(A1)-3,DAY(A1))),100) Monthを分離して3引いてみました。 シンプルですね。 如何でしょうか? お役に立てていたならば幸いです。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.8

こんにちは! すでに色々回答は出ていますが・・・ 生年月日が4月1日までの人は前年度にする!という考え方で =EDATE(A1,-3)-1 としてセルの表示形式をユーザー定義から 0"年" とする、または =TEXT(EDATE(A1,-3)-1,"yy年") (セルの表示形式は「標準」) としてみてください。 ※ EDATE関数を使用するに当り、Excel2003までの場合は メニュー → ツール → アドイン → 「分析ツール」にチェックを入れておく必要があります。 ※ 生年月日から3か月と1日前の西暦年を表示しているだけです。m(_ _)m

noname#204879
noname#204879
回答No.7

No.6 ですが、次のように計算するのは如何? =MOD(YEAR(A1),100)-(TEXT(A1,"mmdd")*1<402)

noname#204879
noname#204879
回答No.6

》 B2に91年 とデータが入るようにしたい その「91年」から、どうやって「学年を割り出す」のですか?!

  • cj_mover
  • ベストアンサー率76% (292/381)
回答No.5

#2、cjです。 閏年対策としては近年の定番数式ですので、 何を計算しているのか解りにくい面はスリーで、 形で覚えちゃってください。 一応、検証はちゃんとしておいた方がいいと思いますので サンプル(閏年)を挙げておきますね。 2000/1/1 2000/3/31 2000/4/1 2000/4/2 2000/4/3 2000/12/31 #2の数式で応用に躓いているといけないので少し補足しますが、 2000/4/2 - 2001/4/1 の例で、"00 年" と、文字列値を返す場合は、 =TEXT(YEAR(A1+274)-1&"/1/1","yy 年") 数値 0 を返す場合は、 =MOD(YEAR(A1+274)-1,100) などのようにします。 くれぐれも検証は慎重にしてくださいね。 以上です。

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.4

=TEXT(A1,"yy")-(MONTH(A1)<4) 必要ならセルの書式設定の表示形式のユーザー定義で 0年;;; と設定。

回答No.3

回答の補足です。 91年と表示したいのなら 先ほどの関数の後ろに&"年"を付け加える。 または表示形式のユーザー設定で0年とする。 00年とすると05年とかもできますよ。

  • cj_mover
  • ベストアンサー率76% (292/381)
回答No.2

こんにちは。お邪魔します。 学年ということなので、 1/1 - 4/1 なら前年。 4/2 - 12/31 なら当年。 ということで宜しいでしょうか? B2に =(YEAR(A1+274))-1 です。 もし、年度ということでしたら、 1/1 - 3/31 なら前年。 4/1 - 12/31 なら当年。B2に =(YEAR(A1+275))-1 になります。 数式に手を加えるとExcelが勝手に日付値と勘違いして おかしな表示に替えてしまうことがありますので、 心配なら、[書式][表示設定]で数値を指定しておいてください。 以上です。

回答No.1

=year(A1) で年数1991が取り出せるので91にするために1900引くか =right(year(A1),2) で右から2文字取り出せます。 早生まれの対処は =if(month(A1)<=3,-1,0) で月が3以下の場合は1引くという意味になるので、 上と合わせて =right(year(A1),2)+if(month(A1)<=3,-1,0) でどうでしょうか? 表示形式が日付になってしまった場合は数値に戻してください。

関連するQ&A

専門家に質問してみよう