• ベストアンサー

エクセル 関数 実日数を月数に直す方法

どなたかご存知でしたらご教示いただければ幸いです。 一言でうまく説明出来ないので、例を記載させていただきます。 したい事は保有月数を表示させたいのですが、月の途中から保有した場合は一律0.5ヶ月と表示させたいのです。 2008年5月14日~2008年8月26日   の場合は3.5ヶ月 2008年7月4日~2008年8月31日    の場合は1.5ヶ月 2008年7年6日~2008年7月29日     の場合は0.5ヶ月 と、月中からスタートした場合は最初の月を一律0.5ヶ月、逆にendはend日が月中でも月末日でもend日を含む月は0.5ではなく1ヶ月とカウントしたいのです。 お手数をおかけいたしますが、 どうぞ宜しくお願い致します。

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

  • ベストアンサー
  • jo-zen
  • ベストアンサー率42% (848/1995)
回答No.11

ANo.1&5&6&10のjo-zenです。再度補足します。 B2,C2セルが空白の場合、エラーが返されてしまいますので、それを回避するには、以下の式にしてみてください。 =IF(OR(B2="",C2=""),"",(IF(DAY(B2)=1,DATEDIF(DATE(YEAR(B2),MONTH(B2),1),DATE(YEAR(C2),MONTH(C2)+1,1),"m"),DATEDIF(B2,DATE(YEAR(C2),MONTH(C2)+1,1)-1,"m"))&IF(DAY(B2)=1,".0",".5"))*1)

515131
質問者

お礼

ありがとうございます! 無事完成しました。 助かりました。きちんと勉強しようと思います。 ありがとうございました。

その他の回答 (11)

  • jo-zen
  • ベストアンサー率42% (848/1995)
回答No.1

例えば、スタート日がB2セル、エンド日がC2セルに入っているとして、以下の数式をD2などに入れてあげればいいかと思います。  =IF(DAY(B2)=1,DATEDIF(DATE(YEAR(B2),MONTH(B2),1),DATE(YEAR(C2),MONTH(C2)+1,1),"m"),DATEDIF(B2,DATE(YEAR(C2),MONTH(C2)+1,1)-1,"m"))&IF(DAY(B2)=1,".0ヶ月",".5ヶ月") 仕組みは式を見れば読みとってもらえると思いますが・・・。

515131
質問者

お礼

ありがとうございます。 試してみたのですが、本来2.5ヶ月になる場合は0.5ヶ月となってしまうのですが、残りの2ヶ月も含められたら嬉しいのですが、そんな関数はありますでしょうか?すみません。。。

関連するQ&A

専門家に質問してみよう