◆稼働日を計算する
仕事で工期とかリードタイムとかを良く計算しませんか。
これを計算するときは休日を除きたいですよね。
Excel には このための Workday とか NetWorkday の関数が用意されています。
しかし、これらの関数は祭日等の指定がめんどくさいです。
さらに、休みの日は各社独自に決めていると思います。
そこで、自社の休日をあらかじめ入力したシートを作成しておいて、
稼働日を計算する Function を作成しました。
example4 を Download して、Workbook を開いてください。
Sheet1 に休日が記述してあります。
yyyy年mm月dd日 のセルが計算できるように表を作ってあります。
1列が1ヶ月で、行が日にちです。休日になる日に 1 を入力してあります。
Function Operation_day(Date1, Date2) As Integer
Dim Date_Start, Date_Stop, CheckDay As Date
Dim Polarity, Cal_column, Cal_row As Integer
Operation_day = 0
If Date1 > Date2 Then
Date_Start = Date2
Date_Stop = Date1
Polarity = -1
Else
Date_Start = Date1
Date_Stop = Date2
Polarity = 1
End If
For CheckDay = Date_Start To Date_Stop
Cal_column = (Year(CheckDay) - 2000) * 12 _
+ Month(CheckDay) - 2
Cal_row = Day(CheckDay) + 3
If Workbooks("Calendar.xls").Sheets("Sheet1"). _
Cells(Cal_row, Cal_column) <> 1 Then
Operation_day = Operation_day + 1
End If
Next
Operation_day = Operation_day * Polarity
End Function
稼働日に プラス/マイナス があるのはおかしいと思うかもしれませんが、
何日前? という場合にも使えると思うので、極性をつけてあります。
実際の使い方は、課題4(example4) の 使用例 のシートに書いてあります。