- ベストアンサー
Excel 日数計算について
Excelの日数計算について質問です。 H18.9.20(A2)からH19.2.22(B2)の期間を月数と残りの日数で表示すると =DATEDIF(A2,B2,"M")&"月" =DATEDIF(A2,B2,"MD")&"日" ここまでは何とかできましたが、 上記期間の1/2、及び1/3の月数と残日数を整数(端数は切捨て)で表示するにはどのような式が必要でしょうか? 月数は=DATEDIF(A2,B2,"M")で求めた月を1ヶ月30日で計算します。 よろしくご指導お願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
1月を30日と見ていいなら 1/2は =INT((B2-A2)/60)&"月" =INT(MOD(B2-A2,60)/2)&"日" 1/3は =INT((B2-A2)/90)&"月" =INT(MOD(B2-A2,90)/3)&"日" で良いかと思いますが..あくまでDATDIFを使うというのであれば 1/2は =INT(DATEDIF(A2,B2,"M")/2)&"月" =INT((MOD(DATEDIF(A2,B2,"M"),2)*30+DATEDIF(A2,B2,"MD"))/2)&"日" 1/3は =INT(DATEDIF(A2,B2,"M")/3)&"月" =INT((MOD(DATEDIF(A2,B2,"M"),3)*30+DATEDIF(A2,B2,"MD"))/3)&"日"
その他の回答 (2)
- osamuy
- ベストアンサー率42% (1231/2878)
DATEDIF(A2,B2,"D")で取得した日数を10(=1/3月)あるいは15(=1/2月)で割って端数を切り捨てれば良いのでは。 こんな感じ =floor(datedif(a2,b2,"d") / 15) & ”半月" & mod(datedif(a2,b2,"d"), 15) & "日"
お礼
osamuyさんの回答で、月数を考えずに日数で考えるやり方もあることに気づきました。ありがとうございます。
補足
説明がまずく申し訳ありません。 計算の方法ですが、経過期間は =DATEDIF(A2,B2,"M")&"月" =DATEDIF(A2,B2,"MD")&"日"が基準になります。 月数が割り切れる場合は問題ないのですが、 割り切れない場合は「余りの月数×30+残日数」を2または3で割り端数を切り捨てる計算を実行させたいと考えてます。
- Mr_Holland
- ベストアンサー率56% (890/1576)
1/2や1/3などの倍率の逆数(例えば、この場合は2や3)をD1セルに入力するとして、式を次のようにしてはいかがでしょうか。 =INT(ABS(B2-A2)/30/D1)&"月" =ROUNDDOWN(MOD(ABS(B2-A2)/D1,30),0)&"日" ひと月を30日とみなして計算し、1日単位以下の端数は切り捨てます。
お礼
ご回答ありがとうございました。
補足
No.2の方の補足と同じですが、 =ROUNDDOWN(MOD(ABS(B2-A2)/D1,30),0)&"日" 1~2日の違いが生じるようです。
お礼
=INT((B2-A2)/60)&"月" =INT(MOD(B2-A2,60)/2)&"日" の式でほぼ満足できる値が得られるようです。 またがる月によっては1日程度の誤差が生じるみたいですが、 DATEDIFを使用しても同じようですね。 いろいろ試してみたいと思います。