0

営業日(休日調整)の四半期ごとのカレンダーを作成しようとしています。

=edate (A1,4) を使用していますが、唯一の問題は、この関数が営業日に調整されないことです。=workday(edate(A1,4),0,USD_Hols) を使用して数式をラップするのが理想的ですが、数式に「0」を追加して翌営業日に返すことはできないようです。

翌営業日を取得する方法を知っている人はいますか?また、翌営業日が翌月に当たる場合は、最も近い前の営業日を返しますか?

ありがとうパコ

4

2 に答える 2

0

これは、コメントの説明に基づいて機能すると思います。コメントの「前」の意味がよくわかりません。以下では、A1 が就業日である場合は A1 を意味し、A1 が就業日でない場合は A1 の前の就業日を意味すると想定しています。

=IF(MONTH(WORKDAY(A1,1,USD_Hols))=MONTH(A1),WORKDAY(A1,1,USD_Hols),WORKDAY(WORKDAY(A1,1,USD_Hols),0-1,USD_Hols))

平日の機能はあまり使っていません。私が気づいたことの 1 つは、日の引数が 0 の場合、平日でなくても A1 に日付が返されるように見えることです。そのため、ネストされた IF をメイン IF の ValueIfFalse 部分に含めました。強制的に次の稼働日に移動し、その前の稼働日に移動します。

于 2012-08-16T19:37:43.903 に答える
0

ワークシート関数を Workday to Excel 2010 に追加する必要があります

正解です:

Function NextBiz(d As Range, holidays As Range) As Date
    If WorksheetFunction.Weekday(d) = 7 Or WorksheetFunction.Weekday(d) = 1 Or WorksheetFunction.CountIf(holidays, d) > 0 Then
    NextBiz = WorksheetFunction.WorkDay(d, 1, holidays)
    Else: NextBiz = d
    End If
End Function
于 2012-12-29T21:18:33.833 に答える