- 締切済み
エクセルでの期間計算(月末数でカウント)
エクセルで月数をカウントしたいのですが、 月末に在籍した場合はカウント、 月末に居ない場合はカウントしない、 と言う形で月数を求める良い方法はありますか? 例) 初 末 結果 4月1日 4月10日 0 4月1日 4月30日 1 4月1日 5月10日 1 4月1日 5月25日 1 4月1日 6月1日 2 4月10日 4月25日 0 4月10日 5月5日 1 4月10日 5月25日 1 4月10日 6月1日 2 このようなイメージですが、良い方法はありますでしょうか?
- みんなの回答 (5)
- 専門家の回答
みんなの回答
C2: =DATEDIF(EOMONTH(A2,-1)+1,B2,"m")
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! あまり良い方法とは言えないかもしれませんが・・・ ↓の画像で説明させていただくと とりあえず今年度の月末の表を作っておきます。 E2セルに =EOMONTH(DATE(2009,4,1),ROW(A1)-1) として、下へコピーし来年の3月までの月末を表示させておきます。 そして、C2セルに =IF(COUNTBLANK(A2:B2)>0,"",SUMPRODUCT(($E$2:$E$13>=A2)*($E$2:$E$13<=B2))) という数式を入れ、オートフィルで下へコピーすると 画像のような感じになります。 尚、当方使用のExcel2003以前のバージョンでは EOMONTH関数を使っていますので、 メニュー → ツール → アドイン → 「分析ツール」にチェックを入れておく必要があります。 以上、かなり手間がかかってしまう方法ですが、 他に良い方法があれば読み流してくださいね。m(__)m
お礼
素早いご回答、ありがとうございました。 他の回答と比較しながら使用してみます。
- okormazd
- ベストアンサー率50% (1224/2412)
初がA列、末がB列とする。ちょっと長くなるが、 =IF(B2=EOMONTH(B2,0),DATEDIF(EOMONTH(A2,0),EOMONTH(B2,0),"M")+1,DATEDIF(EOMONTH(A2,0),EOMONTH(B2,0),"M")) これだと年をまたがっても大丈夫だと思うが。
お礼
素早いご回答、ありがとうございました。 他の回答と比較しながら使用してみます。
- hallo-2007
- ベストアンサー率41% (888/2115)
こういう発想はいかがでしょうか。 末は1日足して月末は翌月にしてしまう。 後は月の差と年の差の12倍 発がA列、末がB列とした場合 =(YEAR(B2+1)-YEAR(A2))*12+MONTH(B2+1)-MONTH(A2) こんな式になります。
お礼
素早いご回答、ありがとうございました。 他の回答と比較しながら使用してみます。
- DIooggooID
- ベストアンサー率27% (1730/6405)
まず、"末" から "初" の月(MONTH)を除算すれば、良いことが 分かります。 ただし、 "末" が月末日の場合のみ、 さらに 1を加える。 たとえば、今月の月末日は、次のようにして求められます。 =DATE(YEAR(TODAY()),MONTH(TODAY())+1,0) したがって、 =IF(B2=DATE(YEAR(A2),MONTH(B2)+1,0),MONTH(B2)-MONTH(A2)+1,MONTH(B2)-MONTH(A2)) "末" が A列、 "初" が B列と仮定
お礼
すばやい回答、ありがとうございました。
お礼
素早いご回答、ありがとうございました。 試したみたのですが、どうやらDATEIF関数にはバグがあり、うまくいかない場合がでてしまいました。 一番シンプルではあったのですが・・・またお願いします。