WORKDAY( ) 関数

2 つの日付の間の就業(稼働)日数を返します。

構文

WORKDAY(開始日, 終了日 <,休日>)

パラメーター

名前 説明
開始日

日付時刻

就業日の計算対象期間の開始日。開始日は期間内に含まれます。

終了日 日付時刻 就業日の計算対象期間の終了日。終了日は期間内に含まれます。
休日

省略可能

文字

週末または休日に当たるため、計算から除外する曜日。休日を省略する場合は、土曜日と日曜日がデフォルトの休日として使用されます。

休日を入力する場合は、次の略語をカンマまたはスペースで区切ります。

  • Mon
  • Tue
  • Wed
  • Thu
  • Fri
  • Sat
  • Sun

休日では大文字と小文字が区別されません。英語版以外の Analytics を使用している場合でも、略語は英語で入力する必要があります。

"Fri, Sat, Sun"

メモ

開始日終了日には日付時刻値を指定することもできますが、値の時刻部分は無視されます。

開始日終了日より後の場合は、負の数値が返されます。

出力

数値。就業日の計算対象期間内の就業日数。

基本的な例

リテラルの入力値

2015 年 3 月 2 日月曜日から 2015 年 3 月 8 日日曜日までの就業日数、5 が返されます。

WORKDAY(`20150302`, `20150308`)

日曜日のみが休日の場合の、2015 年 3 月 2 日月曜日から 2015 年 3 月 8 日日曜日までの就業日数、6 が返されます。

WORKDAY(`20150302`, `20150308`, "Sun")

金曜日と土曜日が休日の場合の、2015 年 3 月 1 日日曜日から 2015 年 3 月 7 日土曜日までの就業日数、5 が返されます。

WORKDAY(`20150301`, `20150307`, "Fri Sat")

また、関数を使用して、日付範囲の週末の日数を計算することもできます。

2015 年 3 月 2 日月曜日から 2015 年 3 月 8 日日曜日までの週末の日数、2 が返されます。

WORKDAY(`20150302`, `20150308`, "Mon, Tue, Wed, Thu, Fri")

フィールドの入力値

開始日フィールドの各日付から 2015 年 12 月 31 日までの就業日数が返されます。

WORKDAY(Start_date, `20151231`)

Start_date フィールドの各日付から End_date フィールドの対応する日付までの就業日数が返されます。

  • 法定祝日は就業日合計に含まれるので、別個の計算を使用して除外しなければならない場合があります。
  • 戻り値が負の場合は、開始日が終了日よりも後であることを示します。
WORKDAY(Start_date, End_date)

備考

日付および時刻関数は正しく使用することが難しい場合があります。ヘルプの関数トピックでは、各関数の動作について、具体的かつ詳細に説明します。日付および時刻関数を使用するときの一般的な考慮事項については、次のトピックを参照してください。

日付書式

開始日または終了日に指定されたフィールドは、フィールド定義で正しく書式を定義してさえいれば、どのような日付書式でも使用することができます。

開始日または終了日にリテラルの日付値を指定する場合は、YYYYMMDDYYMMDD 書式に制限されます。また、`20141231` のように、値を逆引用符で囲む必要があります。

土曜日と日曜日以外の休日

土曜日と日曜日以外の休日を指定すると、月曜日から金曜日までの就業日または週に 5 日の就業日に基づかないデータで WORKDAY( ) 関数を使用できます。

たとえば、Sun を休日に指定すると、月曜日から土曜日までの週 6 日を就業日とすることができます。

法定祝日の考慮

WORKDAY( ) 関数は法定祝日を考慮しません。つまり、期間内に 1 日以上の法定祝日が含まれている場合、戻り値に期間内の実際の就業日数が反映されないことがあります。

ScriptHub の「就業日数の計算」スクリプト。

法定祝日を考慮する必要がある場合は、ScriptHub で、ユーザー定義の休日のリストを受け入れる「就業日の計算」スクリプトを使用します。

より期間が長く、多数の祝日が含まれるデータの場合、一般的に、このスクリプトを使用する方が簡単です。詳細については、ScriptHub からのインポートを参照してください。

四半期などの 3、4 日しか祝日を含まない短い期間の場合は、以下で説明する条件付き演算フィールドを簡単に作成できることがあります。

法定祝日を減算するための条件付き演算フィールド

必要に応じて、条件付き演算フィールドを作成し、WORKDAY( ) 関数で返された値から法定祝日を差し引くことができます。

たとえば、2015 年の第 1 四半期の場合、特定の期間に含まれる以下の各祝日について、WORKDAY( ) の戻り値を 1 ずつ減算できます。

  • 2015/01/01
  • 2015/01/19
  • 2015/2/16

次の例では、この四半期内に開始日と終了日がある複数の期間を示します。

まず、Workdays などの演算フィールドを作成し、四半期中の特定の期間の就業日数を計算します。

DEFINE FIELD Workdays COMPUTED WORKDAY(Start_date, End_date)

次に、先の演算フィールド(Workdays)に返された値を調整する、Workdays_no_holidays などの条件付き演算フィールドを作成します。

DEFINE FIELD Workdays_no_holidays COMPUTED

Workdays-1 IF Start_date = `20150101` AND End_date < `20150119`
Workdays-2 IF Start_date = `20150101` AND End_date < `20150216`
Workdays-3 IF Start_date = `20150101` AND End_date <= `20150331`
Workdays   IF Start_date < `20150119` AND End_date < `20150119`
Workdays-1 IF Start_date < `20150119` AND End_date < `20150216`
Workdays-2 IF Start_date < `20150119` AND End_date <= `20150331`
Workdays-1 IF Start_date = `20150119` AND End_date < `20150216`
Workdays-2 IF Start_date = `20150119` AND End_date <= `20150331`
Workdays   IF Start_date < `20150216` AND End_date < `20150216`
Workdays-1 IF Start_date < `20150216` AND End_date <= `20150331`
Workdays-1 IF Start_date = `20150216` AND End_date <= `20150331`
Workdays   IF Start_date < `20150331` AND End_date <= `20150331`
Workdays

メモ

この条件付き演算フィールド内での条件の順序は重要です。

Analytics では、複数の条件を上から順に評価します。あるレコードに対して真と評価される最初の条件が、そのレコードの条件付き演算フィールドの値を割り当てます。真と評価される後続の条件は、割り当てられた値を変更しません。