• ベストアンサー

エクセルの関数についての質問

エクセルの問題で、 「生年月日と今日の日付の間の通算日数をもとめ、それに1を加えた数を365.24で割り、 さらにINT関数を使って小数点以下を切り捨て、年齢を求めなさい」 という問題がありました。 この計算を、1つの式だけで表すことはできるのでしょうか? とても困っているので、よろしくお願いします。

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

  • ベストアンサー
  • chiizu2
  • ベストアンサー率41% (164/400)
回答No.3

仮に2000年1月1日生まれだとしたら =INT((TODAY()-DATE(2000,1,1)+1)/365.24) もしくは =INT((DATEDIF(DATE(2000,1,1),TODAY(),"D")+1)/365.24) でどうでしょうか 生年月日をA1のセルに入力するのであれば =INT((TODAY()-A1+1)/365.24) もしくは =INT((DATEDIF(A1,TODAY(),"D")+1)/365.24) です TODAY()は今日の日付を求める関数 DATEDIF(DATE(A1),TODAY(),"D")はA1の日付から今日までの日数を求める関数です

すると、全ての回答が全文表示されます。

その他の回答 (5)

  • AkiraHari
  • ベストアンサー率19% (255/1313)
回答No.6

一応念のため、+1してもダメですよ。 例えば2011年7月20日に生まれた人が2012年7月19日、20日でどうなるか試してみてください。 うるう年の時平年の時などいくつか試せば、+1してもしなくてもダメなことは解ります。

すると、全ての回答が全文表示されます。
  • AkiraHari
  • ベストアンサー率19% (255/1313)
回答No.5

試してないですが、その方法は正しく求められないはずです。1年は365.24日ではないからです。365日の年と366日の年があります。平均値で割って小数点以下を切り捨てたら合わないでしょう。 A1に生年月日があるとして =INT((TODAY()-A1)/365.24) が質問で言ってるとおりです。 でもこれではだめです。 例えば2010年7月20日から2011年7月20日だと365日なので365.24で割ったら1未満になります。しかし、満1歳の誕生日を迎えてるので1歳です。

すると、全ての回答が全文表示されます。
  • eeb33585
  • ベストアンサー率18% (283/1495)
回答No.4

1つの式にまとめられます。 言葉通りに式を作っていくと =int((today()-★+1)/365.24) ★は生年月日です(2000/1/1等)。 また =datedif(★,today(),"y") でも同様な結果(年齢)になります。

45454oo
質問者

お礼

ありがとうございました 助かりました

すると、全ての回答が全文表示されます。
  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.2

A1に生年月日があるとして、問題文の通りなら =INT((TODAY()-A1+1)/365.24) 一応別の方法 =DATEDIF(A1,TODAY()+1,"y")

すると、全ての回答が全文表示されます。
回答No.1

微妙に強引な気もするが、年齢なので誤差は吸収されるのかな =INT((TODAY()-"2009/7/20"+1)/365.24)

すると、全ての回答が全文表示されます。

関連するQ&A