[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『datedif関数を使って月数計算(両端入れ)』
いつもこの掲示板にはお世話になっております。
よろしくお願いします。
2つの日付間の月数を計算したいので,
A1(2007/4/30) B1(2007/10/1)でC1に =datedif(A1,B1,"M")
と式を入れ,月数を計算できるようにしました。
ところが月数計算の条件が,
「開始の日の属する月」を1月と数え,
「終了の日の属する月」も1月と数える,というものなのです。
この場合,4・5・6・7・8・9・10月の7月となる数え方です。
Cにはどのような式を入れたら良いのでしょうか,
どなたか知恵を授けてください。
(ぽき)
汎用性はありませんが、 =(YEAR(B1)-YEAR(A1))*12+MONTH(B1)-MONTH(A1) +1 でどうしょうか。 (Mook)
=DATEDIF(EOMONTH(A1,0),EOMONTH(B1,0),"M")+1
で希望通りになりますか? (sato)
こんにちは〜♪
日付は苦手なんですが。。。
=DATEDIF(DATE(YEAR(A1),MONTH(A1)-1,1),B1,"m")
いかがでしょうか。。?
。。。Ms.Rin〜♪♪
こんな方法も。 =SUMPRODUCT(TEXT(A1:B1,"y m!/!1!2")*{-12,12})+1 (ROUGE)
今回は最終的に何年何ヶ月,という表示に持って行きたいので,
eomonth関数を使うことにします。
どうもありがとうございました。
(ぽき)
>eomonth関数を使うことにします ↓ satoさんのこれですか→ =DATEDIF(EOMONTH(A1,0),EOMONTH(B1,0),"M")+1
5/31→11/30 のケースは大丈夫ですか?(他の人の式と結果が異なりますが)
(半平太)
半平太様・・本当,5/31→11/30のケースだけ結果が異なりますね。
なぜかしら。もう少し考えてみます。
理由がわかれば教えてください。
31日の月→30日の月がだめみたいです・・。
(ぽき)
DATEDIFはいろいろと問題をはらんだ関数です。(ROUGE) http://pc.nikkeibp.co.jp/article/NPC/20070530/272938/?P=3
>半平太様・・本当,5/31→11/30のケースだけ結果が異なりますね。 >なぜかしら。もう少し考えてみます。理由がわかれば教えてください。
それぞれの末日同士を計算していますので、 末日同士が(大→小)のケースでは、Datedifの仕様で1か月少なく計算されるからです。
ちなみに私の案(Rinさんと同じ考え方です) ↓ =DATEDIF(A1-DAY(A1)+1,B1,"M")+1
(半平太)
=IF(A1<B1,DATE(YEAR(B1),MONTH(B1),5)-DATE(YEAR(A1),MONTH(A1),1),"")
結果 【書式 m"月") 5月3日 5月3日 3月1日 3月2日 1月 4月30日 5月31日 2月 5月31日 6月1日 2月 1日でも月が変われば 2 同じ月なら 30日あっても 1
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.