アプリ版:「スタンプのみでお礼する」機能のリリースについて

どなたか分かりましたらご教授ください。

月数の計算を0.5ヶ月単位でエクセルでする方法が知りたいです。

例えば
2018/8/12から2019/5/19までなら 8.5

19日未満なら0.5ヶ月と計算するようにしたいのです。

お手数ですがよろしくお願いします。

質問者からの補足コメント

  • 前提を間違えてしまいました。
    2018/8/12から2019/5/19までなら 9.0
    と表示させたいです。
    あまり日は切りすてでおねがいします。

      補足日時:2019/05/14 08:39

A 回答 (5件)

【E2セル】=DATEDIF(A2,B2,"m")+FLOOR(DATEDIF(EDATE(A2,DATEDIF(A2,B2,"m")),B2,"d")/38,0.5)



DATEDIF関数で開始日から終了日までの月数を求めます(端数日は切り捨てられます)。
次に「開始日から上記で求めた月数を経過した日」から終了日までの日数を求めて0.5単位にします。
上記2つの値を合計すると答えになります。
「エクセル 月数を0.5ヶ月単位で計算する」の回答画像5
    • good
    • 0

それっぽい数字を簡単に出す式として、こんなのはいかがでしょうか?セルA1が2018/8/12、A2が2019/5/19という前提です。



=ROUND((A2-A1)/15-0.2,0)/2

要は1ヵ月が30日なんだから半月は15日であり、30日は2半月だよねという発想で、経過日数を15で割ります。それを四捨五入し整数化してから2で割ることで1か月単位に戻します。が、ただ単に15で割って四捨五入するだけだと結局普通に30で割ったのと変わらなくなってしまうので、整数化する前に0.2(半月=1だから0.2だと3日)を引いています。この引く数字をいくつにするかで、どこで9から9.5になるかが変化します。

0.2:2019/5/20
0.3:2019/5/21
0.4:2019/5/23
    • good
    • 0

No2です



>2018/8/12から2019/5/19までなら 9.0
「-0.5」すれば結果は求められると思います。
唯一、「余りの日」がゼロの時だけは「-0.5」しない必要がありそうですが…
    • good
    • 0

こんにちは



>2018/8/12から2019/5/19までなら 8.5
普通に考えると、2018/8/12から2019/5/11で9ヶ月、余り日数が8日(<19)で9.5ヶ月と思うのですが、どのような計算で8.5になるのでしょうか?


以下は、とりあえず、上記が9.5か月で良いものとした場合の例です。

少々面倒なのは、月末処理かも知れません。
例えば、開始日が1/31で終了日が3/3といった場合、余りの日数を計算するのに前月同日からの日数を数えることになりますが、2/31から3/3までではなく、2/28から3/3の4日として計算しなければならない点でしょうか。(勿論、うるう年の場合は2/29日から計算)
(下の例では、開始日が2/28日の場合に、これを月末として換算はしていません。
 あくまで、前月の28日を基準に計算する式となります。)

もう一点は、計算上の境界日の取り扱い。(含む/含まないの差)
開始日を2019/4/10、終了日を2019/5/10とした場合、1ヶ月と1日なので1.5ヶ月とするのか、ジャスト1ヶ月と考えるのかの違い。(単純な1日分の差異ですけれど・・・)
同様に、4/1から5/20の場合に、余りを19日として1ヶ月とカウントするのか、18日として0.5ヶ月とするのかによって差異がでてきます。

以下の式は、前者の1.5ヶ月とカウントする場合の関数式です。
0.5か月単位の月数を求めたいセルに、以下のの関数式を入力します。

=DATEDIF(開始日,終了日,"m")+IF(終了日-MIN(DATE(YEAR(開始日),MONTH(開始日)+DATEDIF(開始日,終了日,"m"),DAY(開始日)),DATE(YEAR(開始日),MONTH(開始日)+DATEDIF(開始日,終了日,"m")+1,0))<18,0.5,1)

※ 上式は、名前の定義で開始日のセルには「開始日」、終了日のセルには「終了日」と名前が付けられているものとしています。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
すいません、例でだしておいて勘違いしてました...正しくは
2018/8/12から2019/5/19までなら 9.0
と表示させたいです。
あまり日は切りすてでおねがいします。

月末換算については誤差として許容範囲なので問題ございません。

色々申し訳ありません。

お礼日時:2019/05/14 08:38

=if(datediff(#開始日#,#終了日#, "D")<19,0.5,1)

    • good
    • 0
この回答へのお礼

回答ありがとうございます。
♯を入れるとエラーになってしまい計算ができませんでした。

お礼日時:2019/05/14 08:14

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A