• ベストアンサー

EXCELで日付計算

EXCEL2003である期間からある期間までの間の日数を表示させ、さらにその結果から日曜日だけを除いた結果と日曜日と祝日だけを除いた結果の2通りの答えを表示させたいのですがどうすればよいでしょうか? 土日を除く場合はWORKDAYS関数を使用していたのですが...... どなたかわかればご教授お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • nag0720
  • ベストアンサー率58% (1093/1860)
回答No.2

#1です。 >ROUNDDOWNやINTとの違いが分からないのですが ROUNDは四捨五入、ROUNDUPは切上げ、ROUNDDOWNは切捨てです。 INTは小数点以下を切捨てる関数ですからROUNDDOWNと似ていますが、ROUNDDOWNは桁数を指定できるところが違います。 さきほどは日曜日の日数の計算式を ROUNDUP((A2-A1+1+WEEKDAY(A1,2))/7,0)-1 と書きましたが、もう少し簡単な計算式がありました。 INT((A2-A1+1+WEEKDAY(A1,3))/7) こちらの方で解説します。 もし開始日が月曜日の場合、 日数が1~6なら日曜日は0 日数が7~13なら日曜日は1 日数が14~20なら日曜日は2 つまり日曜の数は、INT(日数/7) で求められます。 もし開始日が火曜日の場合、開始日を1日前にずらして開始日を月曜日にしても日曜の数は変わりません。 同様に、水曜日の場合は2日前にずらしても、 木曜日の場合は3日前にずらしても、 金曜日の場合は4日前にずらしても、 土曜日の場合は5日前にずらしても、 日曜日の場合は6日前にずらしても日曜の数は変わりません。 したがって、開始日が月曜日ならそのまま、 開始日が火曜日なら日数を1日増やして、 開始日が水曜日なら日数を2日増やして、 ・・・・ 開始日が日曜日なら日数を6日増やして、上記のINT((日数+増加数)/7)を計算すれば日曜の日数が求められます。 WEEKDAY(日付,3)は、月曜:0、火曜:1、・・・日曜:6 を返す関数ですから、 日曜の日数=INT((日数+増加数)/7)=INT((A2-A1+1+WEEKDAY(A1,3))/7)

Not_Pro
質問者

お礼

回答ありがとうございます。無事解決することができました。 本当に助かりました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • nag0720
  • ベストアンサー率58% (1093/1860)
回答No.1

日曜日だけを除く場合は、 A1:開始日、A2:終了日 とすると、開始日から終了日までの日数は、 A2-A1+1 (開始日も終了日も含むとして) その期間の日曜日の日数は、 ROUNDUP((A2-A1+1+WEEKDAY(A1,2))/7,0)-1 以上から、日曜日を除いた日数は A2-A1+1-(ROUNDUP((A2-A1+1+WEEKDAY(A1,2))/7,0)-1) 日曜日と祝日だけを除いた日数は、ちょっと難しいですね。 土日と祝日を除いた日数は、NETWORKDAYS関数で祝日を指定すればできますから、それから祝日でない土曜の日数を引けば計算できます。 しかし、土曜日の日数は上記の日曜日の場合と同じような計算で求められますが、「祝日でない土曜日」となると無理かもしれません。 ユーザー定義関数を作って数えるしかないと思います。

Not_Pro
質問者

お礼

回答ありがとうございます。 無事解決しました。 ですがこの式はROUNDUP関数でないといけないのでしょうか? ROUNDDOWNやINTとの違いが分からないのですが.... WEEKDAYで曜日の数字を出すまでは分かるのですが、なぜ足すのでしょうか? 賢くないので式の意味が分かりません、できれば解説がほしいです。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセルで作業期間の日数を計算したい

    エクセルについて質問です。 セルA1に開始日(例:2012/2/20) セルC1に終了日(例:2012/5/12)を入力し、この期間の日数(○○日間)を 計算する方法を教えて下さい。 更にこの期間で、「土日祝日を除いた日数(平日のみの日数)」と 「日曜祝日を除いた日数(平日+祝日でない土曜日の日数)」を算出する方法も教えて下さい。 ちなみに作業日数を計算するのに、DAYS360関数を使ってみましたが、 1年を360日として計算するので、正確な日数になりません。 また、曜日や休日が絡むとどんな関数を使えば良いのか全くわかりません。 よろしくお願いいたします。

  • EXCEL2003で日付計算(難易度高)

    EXCEL2003で日付計算を行っているのですが、 指定した日(開始日)から日曜日と祝日を除いた7日後(Aとします)を表示させ、 その日から指定した日(終了日)までの日数を求めたいのですが 何かよい式はないでしょうか? ちなみにAから終了日までは日曜日も祝日も含みます。 開始日 7/10 7日後 7/17 終了日 7/22 7/17~7/22日数は7/17を含めるため7です。 通常の引き算だとA(7/17)を含まず6と表示されてしまいます。

  • Excelで日付時刻の差分から土日祝日を引くには

    初めて質問します。 よろしくお願いします。 2つの日付時刻の差分から土日祝日を引いた、経過日数と時刻を出したいのですが、 どうすればよいでしょうか。 例えば、 A1 : 2011/4/28 18:00 B1 : 2011/5/06 9:30 の差分から土日祝日を引いた経過日数と時刻を「2日 13:00」の様に表示したいです。 NETWORKDAYS()関数で土日祝日を差し引いた経過日数はでるのですが、時刻の方をどう 出したらよいのか分かりません。 Excel関数では出来ないのでしょうか。ExcelVBAでやるしかないのでしょうか?

  • 【Excel97】経過日数の計算で、土日・祝日を抜かして計算したい

    表記のとおりです。 「○○月○○日~○○月○○日」という日数計算を出してくて、今はただ引き算で経過日数を出してるだけなんです。そうすると必要のない土日や祝日も入ってしまうので、それを除いた経過日数を出す関数はどのようにすればいいのでしょうか。 私は関数にはうとくて、「こういう数式にすれば」また「こういう表示形式にすれば」と具体的に教えていただけれると嬉しいです。

  • Excelの日付を求める関数について質問です。

    毎月20日が給与支給日で、土日祝日の場合はその前日(ex:20日が日曜→18日金曜)が支払日になるように関数で求めたい時、どのような関数を使えばよいのでしょうか。 例えばIF関数を使って、 =IF(今月の20日が土日祝日の場合,土日祝日の前の平日,20日) というようにする場合の(論理式)と(真の場合)の関数を教えてください。 他の関数でも大丈夫です。 PCはWindows7、Excelは2010です。

  • エクセルで土日を除く日数の計算

    Excelで、土日を除く日数の計算方法はありますでしょうか?例えば、開始日2001/10/11、終了日2001/10/16という場合に、"終了日"-"開始日"で"5日"という結果になりますが、13日と14日が土日になるため、"3日"という結果が欲しいのです。社休日にあたる土日をカウントせず、営業日だけで計算した日数が知りたいのです。(できれば祝日もカウントしたくないのですが、これは難しいでしょうか?)よろしくお願いいたします。

  • エクセルで営業日数を数えたい

    例えば、 2/1~2/15の、祝日以外の日数を数えたいのですが、 この場合はどのような関数を使用できるでしょうか。 祝日と日曜日以外、の場合は、 NETWORKDAYS.INTLを使用しているのですが・・・

  • excel2003 最初の7日間だけ日曜と祝日を除いた日付計算

    excel2003で日付計算をしているのですが、最初の7日間(一週間)のみ 日曜と祝日を除きます。8日目以降は日曜日も祝日も含めて日付を算出します。 この方法をどなたか分かる方がいたらご教授お願いします。

  • excelでの日数計算

    2つの日付を指定して、その間の土日、祝日以外の日数を計算できますか?

  • エクセル表で日にちの計算式

    エクセル表で日にち4/1~4/30までを土日と祝日のお休みを引いた日数を計算したいのですが?そんな関数はありますか? 宜しくお願い致します。