• ベストアンサー

エクセルのYEARFRACで・・・。

エクセルである期間を計算するためにYEARFRAC関数を用いました。 仮にA1に1999/4/1、B1に2007/4/1と入力し、C1に端数は切り上げた状態で年数を9年(8年と1日なので)と表示させたいのです。 そこでC1に『ROUNDUP((YEARFRAC(A2,B2)),0)』と入力したのですが、8年と表示されてしまいます・・・。 これを9年と表示するにはどうしたらよいのでしょうか? 『ROUNDUP((YEARFRAC(A2,B2))+1,0)』とすれば良いのかと思ったのですが、検証した結果違うみたいで・・・。 分かる方がいらしゃったら教えて下さい!

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

  • ベストアンサー
  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.4

#02です。#01さんの補足を見て再度試しました 開始日   終了日  YEARFRAC(A1,B1,3)  YEARFRAC(A1,B1,1) 2003/4/1 2006/4/1 3.002739726      3.000684463 2004/4/1 2007/4/1 3             2.997946612 2005/4/1 2008/4/1 3.002739726      3.000684463 2006/4/1 2009/4/1 3.002739726      3.000684463 どうもYEARFRAC関数は「年」だけで年間日数(365日または366日)の判断をしているようです。これでは厳密な計算には使えませんね。 やはり「満年数+1」を求める式である =DATEDIF(A2,B2,"Y")+1 をお勧めします

minami1764
質問者

お礼

検証ありがとうございます! ご提案どおり『=DATEDIF(A2,B2,"Y")+1』を使用したいと思います。 数の数え方は難しいんですね・・・。

その他の回答 (3)

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.3

#02です。YEARFRAC関数を試した結果、訂正があります。 2004年02月が閏年です 開始日   終了日 2003/4/1  2004/4/1 (2/29を挟んだ1年+1日) =TEARFRAC(A1,B1,1)  → 結果は1.00   → 切り上げて1 =TEARFRAC(A1,B1,3)  → 結果は1.002739 → 切り上げて2 開始日   終了日 2002/4/1  2004/4/1 (2/29を挟んだ2年+1日) =TEARFRAC(A1,B1,1)  → 結果は2.000912409 → 切り上げて3 =TEARFRAC(A1,B1,3)  → 結果は2.002739726 → 切り上げて3 開始日   終了日  2002/4/1  2004/3/31 (2/29を挟んだ満2年ちょうど) =TEARFRAC(A1,B1,1)  → 結果は1.998175182 → 切り上げて2 =TEARFRAC(A1,B1,3)  → 結果は2.00    → 切り上げて2 =TEARFRAC(A1,B1,3) はちゃんと閏年を考慮しているようです。

minami1764
質問者

お礼

うるう年に気をつけなければいけないなんて、念頭になかったです。 うるう年って計算が面倒臭いんですね・・・。

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.2

YEARFRAC関数を使用したいなら =ROUNDUP(YEARFRAC(A1,B1,3),0) で「9」になります。ただしYEARFRAC関数は閏年は考慮していないので必ずしも正確ではない可能性があります =DATEDIF(A2,B2,"Y")+1 の方がよいかもしれません。

minami1764
質問者

お礼

回答ありがとうございます! うるう年が関係するのですね・・・。 ご提案の『=DATEDIF(A2,B2,"Y")+1』を試したところ、上手く行きました! 関数は種類が多くてどれを使用すべきか悩むのですが、1つずつマスターしていこうと思います。

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

=YEARFRAC(A1,A2)は、=YEARFRAC(A1,A2,0)と同様、1年を360日で計算しますから、そういう結果になります。 実際の日数で計算するなら=YEARFRAC(A1,A2,1)としなければいけません。 切り上げるなら、 =ROUNDUP(YEARFRAC(A1,A2,1),0)ではどうでしょうか?

minami1764
質問者

お礼

回答ありがとうございます。 ご提案どおりROUNDUP((YEARFRAC(A1,B1,1)),0)と変えてみました。 質問例の1999/4/1から2007/4/1までの期間計算は9年と表示されましたが、2004/4/1から2007/4/1で試算させたところ3年となってしまいました(泣) 本来は3年と1日なので4年となって欲しかったのですが・・・。 何か足りないんでしょうか?

関連するQ&A