- ベストアンサー
Excel2010 平日を取得する関数について
カテゴリーを知らなくてWindows7に質問したので変更しました。 平日の日数を取得する関数は、NETWORKDAYSで取得できますが、開始日と終了日を入力しなければならず、月毎に変わる日数の開始日と終了日を関数式に入力できないので、年月を表示しているのでそれを利用してできる方法はないでしょうか。 また、土日祝日の日数を取得する関数があれば教えてください。
- みんなの回答 (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)
お礼
テキスト文のみで分かりづらい中、早速丁寧な回答ありがとうございます。 下記の例を参考に確認して”バッチリ”でした。 >【指定した月の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年分の祝日を作成してあったのでそれを選択しました。沢山の例を記述して戴き永久保存します。ありがとうございました。