[[20041208144930]] 『月当たり延べ日数の計算について』(マック) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『月当たり延べ日数の計算について』(マック)

初めて書き込みます。教えてください。よろしくお願いします。

開始日   終了日   通算日数 4月  5月  6月  7月

2004/3/23 2004/6/23   92    30     31    23     0

2004/4/30 2004/5/23     23    1    23     0    0

2004/5/12 2004/8/20   100    0     19     30    31

2004/5/15 2004/12/20

2004/5/20 2005/3/15

上記のような表があります。
基本データは開始日と終了日のみ入力されています。

通算日数の計算はB2−A2 で計算です。

すべてのデータから各月の延べ日数を計算することができますでしょうか?

一番上のデータでは4月と5月が月の全部の日を表示し、最終月の6月に
23日分を表示させたいのです。

なお、表は7月以降、8月〜翌年3月まで続いています。

(このような質問のしかたでよろしいでしょうか?)


 はじめまして。
下記のような表だとします。
  |    A    |    B     |    C   | D | E | F | G |
 1| 開始日  | 終了日   |通算日数|4月|5月|6月|7月|
 2|2004/3/23|2004/6/23 |        |   |   |   |   |
 3|2004/4/30|2004/5/23 |        |   |   |   |   |
 4|2004/5/12|2004/8/20 |        |   |   |   |   |
 5|2004/5/15|2004/12/20|        |   |   |   |   |
 6|2004/5/20|2005/3/15 |        |   |   |   |   |

 D1〜G1の月は、それぞれ
2004/4/1
2004/5/1
2004/6/1
2004/7/1
と入力しておき、表示形式をユーザー定義で m月 にしておきます。

 D2に =IF(AND(EOMONTH(D$1,0)>=$A2,D$1<=$B2),(MIN(EOMONTH(D$1,0),$B2)+1)-MAX(D$1,$A2),0)

 D2をG6までコピー

 ※この数式だとE4が20になるので、もしかしたら式の考え方が違うのかもしれません。
(Yosh!) OS:WinXP,Excel:2003


 あら、ずいぶん短い式になるんですね(;^_^A アセアセ
 折角考えてやっと出来たので挙げさせてください。
 D1からG1はYosh!さんと同様にしてください。
 同じくE4が20になります。これはD3が1のためにそうなります。

 D2セル=IF(DATE(YEAR(D$1),MONTH(D$1)+1,0)<$A2,"",IF(AND(D$1<=$A2,DATE(YEAR(D$1),MONTH(D$1)+1,0)>=$A2),DATE(YEAR(D$1),MONTH(D$1)+1,0)-$A2+1,IF(AND(D$1>=$A2,OR(YEAR($B2)>YEAR(D$1),MONTH($B2)>MONTH(D$1)),$B2>D$1),DAY(DATE(YEAR(D$1),MONTH(D$1)+1,0)),IF($B2<D$1,"",DAY($B2)))))

 長すぎだってば_/ ̄|○ il||li
 (川野鮎太郎)


 はじめまして、いつもこっそりお世話になっております。
 が、今回はわたしも考えてみました。
 D1〜G1部分はYosh!さんと川野さんと同じで、同じくE4も20になります。

 D2 =IF(OR($A2>E$1-1,$B2<D$1),0,IF($B2>E$1-1,E$1-1,$B2)+1-IF($A2<D$1,D$1,$A2))

 アドイン関数の知識が無かったものでEOMONTH関数も使わず、単純にIFのみなのですが…。
 エンドオブマンスなんてこんな便利な関数があるのですね。本当に勉強になります。
 これからお2人の式の意味を理解すべく頑張ってみます。飛び入り失礼致しました。 (かや)


 ( ̄0 ̄;アッ 私のは恥ずかしいので理解しないでください_/ ̄|○ il||li
 同じ列だけで処理しようとしたから式が長くなりすぎで、あとで何が何かわかりませんし(;^_^A アセアセ
 かやさんの式の場合P列に2005年4月が必要のようですね。
 これはこれで作業列として使う良い方法です。
 (川野鮎太郎)

どうもありがとうございました!

yosh!さん、綺麗に表をまとめてくださってありがとうございました^^;

川野鮎太郎さんの方法で完璧に出来ました^^

かやさんの方法でも表に4月を追加したらうまくいきました。

作業に時間を取られ、御礼が遅くなりました^^;

失礼しました。(マック)


 川野さん、フォローありがとうございました。
 そうですね、翌年4月が必要でした。説明不足で済みません…。
 そして年月日にバラせば同じ列だけでも大丈夫なんですね。
 これは以降の自分のひらめきの肥やしにしたいと思います。
 便乗ですが勉強になりました。ありがとうございました! (かや)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.