• ベストアンサー

日曜・祭日だけ除いた日数を求めたい

networdays関数では開始日から終了日までの平日の日数しか返せないのでしょうか? 勤務先では土曜も営業しています。どなたかご存知の方よろしくおねがいします。

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.1

networdays関数類似の私製関数を作ってみました。 ツール-マクロ-VBE その画面のメニューで、挿入ー標準モジュール 出てきた画面に Function wdx(a, b, c) For i = a To b If Weekday(i) = 1 Then '日曜を除く Else j = j + 1 End If Next i '----期間内祝日数 Dim cl As Range For Each cl In c If cl >= a And cl <= b Then '期間内か k = k + 1 End If Next wdx = j - k End Function をコピーし貼り付ける。 ーーー そして、たとえば A1 2006/1/1 B1 2006/2/28 と開始日と終了日をこの順に入れる。 ーーー たとえばH列のセルに、期間中の月ー土の祝日を入れる。 A1,B1範囲外の長い期間の(たとえば1年分の)祝日を入れるのはかまわない。 この例ではH1:H3 H1 2006/1/2 H2 2006/1/9 H3 2006/2/11 求める日数を入れるセルに =WDX(A1,B1,H1:H3) と入れる。答えは 47 少数例でテストしましたが、事前に十分テストしてお使ってください。

その他の回答 (1)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんにちは。 関数で、このようにすれば出来ます。 A1:開始日 A2:終了日 仮に H1:H15; 祭日を入れたとします。 =SUMPRODUCT(((ISERROR(MATCH(A1+ROW(INDIRECT("A1:A"&A2-A1)),H1:H15,0)))*(WEEKDAY (A1+ROW(INDIRECT("A1:A"&A2-A1)))<>1)=1)*1)

関連するQ&A

専門家に質問してみよう