0

NETWORKDAYSセル内の関数を使用するために、過去/将来のカナダの連邦祝日を計算する方法を理解しようとしています。休日の日付は毎年変わるので、これを計算するために使用できる関数またはVBAコードはありますか?

たとえば、10年間のプロジェクトがあり、週末と休日を除いて、開始日と終了日の差異を計算したいとします。

同様に、祝日は8月の第1月曜日です。2011年は1日でしたが、2012年は6日でした。

イースターマンデーは2011年は25日でしたが、2012年は9日でした。

働くNETWORKDAYSためには休日の正確な日付が必要なので、将来の休日の日付を計算する必要があります(10〜15年先)

これが理にかなっているといいのですが...

4

3 に答える 3

2

数式アプローチを使用すると、非常に簡単にリストを作成できます。たとえば、A2ダウンのレイバーデーリストの年のみで、行2の別の列でこの数式を使用します。

= DATE(A2,9,8)-WEEKDAY(DATE(A2,9,6))

これにより、関連する年の9月の第1月曜日の日付がわかります-数式を下の列にコピーします

編集:これはあなたのルールに従って2000年から2099年まで計算されたすべての休日のワークブックだと思います。2000年より前の日付が必要な場合は、列Aの年を変更するだけで、日付が自動的に変更されます。

範囲にいくつかの空白の列を追加します。たとえば、C2:M101 = holidaysを作成すると、その名前付き範囲を任意のNETWORKDAYS / WORKDAY関数で使用できます。追加の列を使用すると、任意の「アドホック」休日を入力できます。

于 2013-01-15T17:23:08.267 に答える
1

スレッドに少し遅れていることはわかっていますが、何らかの理由でファイルへのリンクが開きません。カナダの祝日をどのように計算するか見てみたいです。レイバーデー、イースター、聖金曜日、ビクトリアデーの解決策を見つけましたが、それでも残りを探しています。

労働者の日=DATE(A2,9,8)-WEEKDAY(DATE(A2,9,6))イースター= FLOOR( "5 /"&DAY(MINUTE(A2 / 38)/ 2 + 56)& "/"&A2、 7)-34聖金曜日= FLOOR(DATE(A2,5、DAY(MINUTE(A2 / 38)/ 2 + 56))、7)-36ビクトリアデー= DATE(A2,5,25)-WEEKDAY(DATE( A2,5,25)、3)-(7 *(WEEKDAY(DATE(A2,5,25)、3)= 0)) *4桁の年はA2にある必要があります*

于 2020-01-11T04:18:12.973 に答える
0

営業日は月曜日から金曜日(祝日を除く)です。

週末に行われる一部の休日は、次の月曜日(カナダの日、ボクシングデー、正月など)、または前の金曜日(クリスマスなど)に移動する必要があります。

会計年度がFyearの場合、カナダのオンタリオ州での休日の計算式は次のとおりです。

ホリデーフォーミュラ

新年=WORKDAY(DATE(FYear、1,0)、1)

家族の日=DATE(FYear、2,22)-WEEKDAY(DATE(FYear、2,6))

聖金曜日=FLOOR(DATE(FYear、5、DAY(MINUTE(FYear / 38)/ 2 + 56))、7)-36

Victoria Day = DATE(FYear、5,25)-WEEKDAY(DATE(FYear、5,23))

カナダの日=DATE(FYear、7,1)+(WEEKDAY(DATE(FYear、7,2))<3)*(3-WEEKDAY(DATE(FYear、7,2)))

CivicDay = DATE(FYear、8,8)-WEEKDAY(DATE(FYear、8,6))

LaborDay = DATE(FYear、9,8)-WEEKDAY(DATE(FYear、9,6))

感謝祭=DATE(FYear、10,15)-WEEKDAY(DATE(FYear、10,6))

クリスマス=DATE(FYear、12,25)-(WEEKDAY(DATE(FYear、12,26))<3)* WEEKDAY(DATE(FYear、12,26))

ボクシングデー=DATE(FYear、12,26)+(WEEKDAY(DATE(FYear、12,27))<3)*(3-WEEKDAY(DATE(FYear、12,27)))

次の新年=WORKDAY(DATE(FYear + 1,1,0)、1)

于 2021-10-23T05:11:37.490 に答える