• ベストアンサー

Excel2010 平日を取得する関数について

カテゴリーを知らなくてWindows7に質問したので変更しました。 平日の日数を取得する関数は、NETWORKDAYSで取得できますが、開始日と終了日を入力しなければならず、月毎に変わる日数の開始日と終了日を関数式に入力できないので、年月を表示しているのでそれを利用してできる方法はないでしょうか。 また、土日祝日の日数を取得する関数があれば教えてください。

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

  • ベストアンサー
  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.1

>年月を表示しているのでそれを利用して  どのセルにどの様な形で表示されてるのか説明が無い様ですので、今仮に、2012年の11月を表す場合に、 A1セルに    2012 B1セルに    年 C1セルに    11 D1セルに    月 と入力されるものとします。  又、祝日の一覧がE列に入力されているものとします。 【指定した月の16日から翌月の15日までの平日の日数を取得する関数】 =NETWORKDAYS(DATE(A1,C1,16),DATE(A1,C1+1,15),$E:$E) 【指定した月の16日から翌月の15日までの土日祝日の日数を取得する関数】 =DATE(A1,C1+1,15)-DATE(A1,C1,16)+1-NETWORKDAYS(DATE(A1,C1,16),DATE(A1,C1+1,15),$E:$E) 【指定した月の1日から末日までの平日の日数を取得する関数】 =NETWORKDAYS(DATE(A1,C1,1),DATE(A1,C1+1,),$E:$E) 【指定した月の1日から末日までの土日祝日の日数を取得する関数】 =DATE(A1,C1+1,)-DATE(A1,C1,1)+1-NETWORKDAYS(DATE(A1,C1,1),DATE(A1,C1+1,),$E:$E)  或いは別パターンとして、今仮に、2012年の11月を表す場合に、A1セルに 2012年11月 と入力される(セルを選択すると数式バーには「2012/11/1」と表示される) と入力され、祝日の一覧がE列に入力されているものとします。 【指定した月の16日から翌月の15日までの平日の日数を取得する関数】 =NETWORKDAYS(DATE(YEAR(A1),MONTH(A1),16),DATE(YEAR(A1),MONTH(A1)+1,15),$E:$E) 【指定した月の16日から翌月の15日までの土日祝日の日数を取得する関数】 =DATE(YEAR(A1),MONTH(A1)+1,15)-DATE(YEAR(A1),MONTH(A1),16)+1-NETWORKDAYS(DATE(YEAR(A1),MONTH(A1),16),DATE(YEAR(A1),MONTH(A1)+1,15),$E:$E) 【指定した月の1日から末日までの平日の日数を取得する関数】 =NETWORKDAYS(DATE(YEAR(A1),MONTH(A1),1),DATE(YEAR(A1),MONTH(A1)+1,),$E:$E) 【指定した月の1日から末日までの土日祝日の日数を取得する関数】 =DATE(YEAR(A1),MONTH(A1)+1,)-DATE(YEAR(A1),MONTH(A1),1)+1-NETWORKDAYS(DATE(YEAR(A1),MONTH(A1),1),DATE(YEAR(A1),MONTH(A1)+1,),$E:$E)

noname#194986
質問者

お礼

テキスト文のみで分かりづらい中、早速丁寧な回答ありがとうございます。 下記の例を参考に確認して”バッチリ”でした。 >【指定した月の16日から翌月の15日までの土日祝日の日数を取得する関数】 =DATE(A1,C1+1,15)-DATE(A1,C1,16)+1-NETWORKDAYS(DATE(A1,C1,16),DATE(A1,C1+1,15),$E:$E) 「$E:$E」の所は別シートに10年分の祝日を作成してあったのでそれを選択しました。沢山の例を記述して戴き永久保存します。ありがとうございました。