• ベストアンサー

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

エクセルの問題で、 「生年月日と今日の日付の間の通算日数をもとめ、それに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% (7418/18948)
回答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

  • エクセル関数で質問です

    エクセル関数で質問です 金額の計算で小数点の切り捨てをしたいのですけど まず式において金額を出します、その金額が小数点になるので表示の小数点を切り下げたいのですが、どうやって関数または書式を設定したらできますか?

  • エクセル関数について

    エクセル関数について教えてください。 個人の生年月日が入力されているシート上に、 ブックを開いた日付までの年齢を計算する関数を 教えてください。 例えば、年齢だけではなく、30歳5ヶ月だとわかるように計算したいと思っています。 どなたか、ご存知の方がいらっしゃれば教えて いただきたいと思います。

  • エクセル関数の書き換えについて教えてください。

    次のようなエクセル関数を使用していますが、 =INT(IF(ISNUMBER(S52),S52,S50)*0.67) 小数点が切り捨てになるようになっています。 そこで、小数点を切り上げるようにするにはどのように関数に 書き換えればよいか、教えてください。 宜しくお願いします。

  • エクセルで

    エクセルで999.76-888.75と入力して、 小数点以下は計算しない方法を教えてください。 関数のINTでやってみましたが値がくり入れられるようで。

  • Excelのrounddown関数について

    Excelのrounddown関数について教えてください。 Excel2003でrounddownで0(小数点以下を切り捨て)を入れて計算させた所、例えば、17,600 *0.1=1759となってしまい、1760にはなりません。単純に考えても、電卓で計算しても17,600 *0.1=1760になるはずですが、何故このようになってしまうのでしょうか? 因みに式ですが、=ROUNDDOWN($P4*0.1,0)で、P4(隣のセル)の数値を計算します。 例の場合、P4には3200*5.5の結果が入りますので、ここにも小数点以下の数値は発生しません。 何か設定が違っているのでしょうか?

  • エクセルの計算について質問です

    エクセルの計算について質問です 数値の計算で、電卓で算出した値とエクセルで計算した値とが異なり困ってます。 【計算内容】 A(整数) × B(小数部2桁) = C(整数) ※Cは小数点以下切捨てとしたい ※エクセル計算ではROUNDDOWNを使用 【実際の計算結果】 (1)10,000,010,000.00 × 9999.99 = エクセル:99,999,999,999,999、電卓:99,999,999,999,999 (2)10,000,010,000.01 × 9999.99 = エクセル:100,000,000,000,000、電卓:99,999,999,999,999.9999 (1)は電卓とエクセルで結果は一致しますが、(2)は一致しません。 エクセルで小数点以下第4位が丸められてるようです。 【エクセルで算出したい値】 (2)ではDに999,999,999,999と出力したいです。 関数INTやROUNDDOWNを使ってみたのですが、うまくいきませんでした。 セルCの書式設定と、どの関数を使用すればよいのか教えていただけると大変助かります。

  • エクセル 関数を教えてください。

    エクセル 関数を教えてください。 数点第一位の値が5のときだけ小数点第二位の値で切り上げか切り捨てかを判断します。 小数点第二位が0のときは切り捨て、1以上のときは切り上げ計算になります。 (例)4.50点→4点 、 4.51点→5点 小数点第一位が5以外の場合は四捨五入と同じ要領です。 ●A1に数字入力、B1に計算式をお願いします。

  • エクセルの関数

    小数点以下だけを取り出したいときに使える関数ってありますか? 友人が、まず年齢を出して、その年齢の月の部分の値を12で割った値を出したいそうなんです。 私が考えたのは =VALUE(RIGHT(FIXED(DATEDIF(生年月日,TODAY(),"m")/12,2),2))/12 と、やったのですが面倒です。よい方法があったら教えてください。

  • Access97 Int関数

    小数点の切り捨てをしたくてクエリーで 以下の計算をしてみました。 =Int([個数]*[単価]) ところが以下の数値で計算させると結果が 50232となると思うのですが50231となってしまいます。 数量:460 単価:109.2 結果:50231(電卓で計算すると50232) 結果が小数点になるときは問題ないようです。 使い方が間違っているのでしょうか。 こういう場合Int関数を使うのが誤りなのでしょうか? だとしたら他に当てはまる関数があるのでしょうか? ちなみにテーブルの定義としては 数量:長整数型(小数点以下桁数0) 単価:単精度浮動小数点型(小数点以下桁数0) となっていますが小数点は表示されています。

  • エクセルの関数について

    こんにちは。 エクセル関数でわからないところがあるので、教えてください。 Round関数で、四捨五入の小数点以下の表示を切っています。 そうすると、その合計を取ると、実際は表示は小数点以下が 切れていても、元の数字は小数点が残っているので 合計を出した時に端数が合いません。 =IF(E5=0,"",G5) このG5に当たる個所が、Round関数が入っていて 合計が合いません。 ちなみにG5には、=ROUND(C6,2) こんな式が入っています。 C6の数値が小数点になっています。 分かる方、教えてください。よろしくお願いいたします。

専門家に質問してみよう