• ベストアンサー

2010年の時自分は何歳だったかを表示させたい

私は今年で29歳になったのですが セルA1に現在の年 セルA2に29 セルB1に西暦 セルB2に2015 と入れた場合、 セルC2に2010年の時自分は何歳だったかを表示させたいのですが その関数式を教えてください。 =YEAR(TODAY())-B2-A2 だと-29になってしまうし、 =A2-YEAR(TODAY())-B2 だと-4001になってしまいます。

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

  • ベストアンサー
  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.3

 YEAR(TODAY())で現在の年を求める事が出来ますから >セルB2に2015 は不要で、 >セルA2に29 >セルC2に2010年 の2つがあれば事足ります。  その場合の関数式は次の様になります。 =$A2-YEAR(TODAY())+$C2  但し上記の関数では、A2セルに入力されている年齢が、今年の誕生日を過ぎてからの年齢である必要があります。  しかし実際には、現在の歳が29歳であっても、今日が今年の誕生日前なのか以降なのかによって年齢が異なって来ますし、当時の年齢を求めたい日の日付が誕生日前なのか以降なのかによっても年齢が異なって来ます。  又、上記の関数では、A2セルやC2セルに年齢や西暦年を入力していない場合でも計算が行われてしまいます。  ですから、やり方を変えて以下の様にされては如何でしょうか?  まず前提条件として、A2セルには現在の日付における年齢を入力し、C2セルには「その日付の当時に自分は何歳であったのかを求めたい日付」を例えば2015/10/24等の様な形式で入力し、B2セルには自分の誕生日の月日を10/24か10月24日などの様な形式で入力するものとします。  尚、B2セルにその様に入力しますと、Excelが自動的に西暦年を追加して2015/10/24などの様な形式のデータに変換してしまいますが、構わずにそのまま作業を続けて下さい。  次に、当時の年齢を表示させたいセルに次の様な関数を入力して下さい。 =IF(AND(COUNT($A2,$B2,$C2)=3,$B2>=1,$C2>=1),IF($A2=INT(ABS($A2)),IFERROR(DATEDIF((YEAR(TODAY())-$A2-(TEXT(TODAY(),"m/d")-TEXT($B2,"m/d")<0))&"/"&TEXT($B2,"m/d"),$C2,"Y"),"誕生前"),""),"")  以上です。

YYIREEFTFQIBF
質問者

お礼

ご回答ありがとうございました。

その他の回答 (2)

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

B列を何に使いたいのかイミフメイですが、今年29歳と判っているなら =A2-YEAR(TODAY())+2010 です。 暇なのでよく算数を考えてみれば =今年の年齢-(今年は2015年-目的は2010年) と判りますね?

YYIREEFTFQIBF
質問者

お礼

ご回答ありがとうございました。

  • aokii
  • ベストアンサー率23% (5210/22062)
回答No.1

C1セルに2010と入れて、 =A2-B2+C1

YYIREEFTFQIBF
質問者

お礼

ご回答ありがとうございました。

関連するQ&A

専門家に質問してみよう