- ベストアンサー
日曜日の日数計算
いつもお世話になります。 エクセルであるセル(A1とする)に 2008年1月23日12:00と入れて また違うセル(A2とする)に 2008年2月11日17:00と入力して このA1、A2の2つセル間(日数)にかかった日曜日の数(この場合は3)を計算させるには どうしたらよろしいでしょうか。 ご存知の方がおられましたらおしえてください。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
日付__________________________曜日___次の日曜日までの日数___自分を含む次の日曜日 2008年1月23日12:00______3_______________________________4____2008/01/27 2008年2月10日17:00______7_______________________________0____2008/02/10 2008年2月11日17:00______1_______________________________6____2008/02/17 曜日=WEEKDAY(CutStr(A2, "日",1) & "日",2) 次の日曜日までの日数=7-B2 自分を含む次の日曜日=TEXT((CutStr(A2,"日",1)&"日")+C2,"yyyy/mm/dd") 同じ要領で、_自分を含む前の日曜日を求めます。 後は、両者を引き算して7で除算した商に+1。 CutStr(A2, "日",1) & "日" と 自作関数で切り取っていますが、これはエクセルの関数に置換して下さい。 ※しかし、ANo1さんのシンプルな回答が一番でしょうね。
その他の回答 (4)
=INT((A2-(A1+(7-WEEKDAY(A1,3))))/7)+1 先の回答を1式にまとめれば上のようになります。 ただ、<自分を含む前の日曜日を求める>代わりに端数を切り捨てています。 多分、これを展開すれば・・・
お礼
たびたび有難うございます。 関数のヘルプなどを参考に自分でも考えて見るつもりです。 有難うございました。
日付はシリアル値で入力しないと話にならないので A1セルに「2008/1/23 12:00」と入力 A2セルに「2008/2/11 17:00」と入力 表示形式を ユーザー定義で「yyyy"年"m"月"d"日"h:mm」 という前提で話を進めます。 日曜日の数なら =INT((A2-A1+WEEKDAY(A1,3)+1)/7)
お礼
ご回答有難うございます。 シリアル値の件まで有難うございます。 関数は思ったほどシンプルでINTとWEEKDAYしか使わないと いうわけですね。 仕事を何時間でできるかというのをエクセルで管理するというのが、目的で、日曜日の日数をひいてやらなければなりませんでした。 有難うございました。
- suz83238
- ベストアンサー率30% (197/656)
とりあえず、 =IF(WEEKDAY(A1,1)=1,INT((DATEDIF(A1,B1,"MD")+1)/7+1),INT((DATEDIF(A1,B1,"MD")+1)/7)) でやってみて
お礼
早速の回答有難うございます。 とりあえずやってみました。 いろんなやり方があるものと、少し驚いております。 自分の部署が仕事を請けて、仕事を他部署に渡すまでの時間を計るのが目的で、稼動しない日曜日をその時間から引いてやるのが、今回の質問の目的でした。 助かりました。
- hallo-2007
- ベストアンサー率41% (888/2115)
たしか =INT((A2-WEEKDAY(A2))-(A1-WEEKDAY(A1))/7 で、表示形式を数値にすれば、良かったと思います。 確認の上、ご使用下さい。
お礼
有難うございます。 関数WEEKDAYを使うということですね。 業務上、ある仕事を受け付けて他部署に渡すまでの 時間をエクセルで管理するのが目的で、日曜日は稼動しないので、 自動的に引いてやらなくてはなりませんでした。 助かりました。
補足
詳しい説明有難うございます。 関数を自分で作る”自作関数”ですが、 いまいち使いこなせません。 今回の質問ですが、自分の部署が仕事を請けて、次の部署に引き渡すまでの時間をエクセルで管理するのに稼動しない日曜日を引いてやるのが、目的でした。 助かりました。有難うございます。