
エクセルである期間を計算するために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)』とすれば良いのかと思ったのですが、検証した結果違うみたいで・・・。
分かる方がいらしゃったら教えて下さい!
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
をお勧めします
検証ありがとうございます!
ご提案どおり『=DATEDIF(A2,B2,"Y")+1』を使用したいと思います。
数の数え方は難しいんですね・・・。
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)
はちゃんと閏年を考慮しているようです。
No.2
- 回答日時:
YEARFRAC関数を使用したいなら
=ROUNDUP(YEARFRAC(A1,B1,3),0)
で「9」になります。ただしYEARFRAC関数は閏年は考慮していないので必ずしも正確ではない可能性があります
=DATEDIF(A2,B2,"Y")+1
の方がよいかもしれません。
回答ありがとうございます!
うるう年が関係するのですね・・・。
ご提案の『=DATEDIF(A2,B2,"Y")+1』を試したところ、上手く行きました!
関数は種類が多くてどれを使用すべきか悩むのですが、1つずつマスターしていこうと思います。
No.1
- 回答日時:
=YEARFRAC(A1,A2)は、=YEARFRAC(A1,A2,0)と同様、1年を360日で計算しますから、そういう結果になります。
実際の日数で計算するなら=YEARFRAC(A1,A2,1)としなければいけません。
切り上げるなら、
=ROUNDUP(YEARFRAC(A1,A2,1),0)ではどうでしょうか?
回答ありがとうございます。
ご提案どおり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が見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
おすすめ情報