Función WORKDAY( )

Devuelve la cantidad de días laborables entre dos fechas.

Sintaxis

WORKDAY( fecha_de_inicio ; fecha_de_finalización <;díasnolaborables>)

Parámetros

Nombre Tipo Descripción
fecha_de_inicio

fechahora

La fecha de inicio del período para el cual se calculan los días laborables. La fecha de inicio está incluida en el período.

fecha_de_finalización fechahora La fecha de finalización del período para el cual se calculan los días laborables. La fecha de finalización está incluida en el período.
díasnolaborables

opcional

carácter

Los días de la semana que son fin de semana, o días no laborables, se excluyen del cálculo. Si se omite díasnolaborables, el sábado y el domingo se usan como los días no laborables predeterminados.

Introduzca díasnolaborables usando las siguientes abreviaturas, separadas por un espacio o una coma:

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

díasnolaborables no distingue entre mayúsculas y minúsculas. Las abreviaturas se deben introducir en inglés, aun cuando esté usando una versión de Analytics que no sea en inglés.

"Fri, Sat, Sun"

Nota

Puede especificar un valor de fechahora para fecha_de_inicio o fecha_de_finalización pero se ignora la parte de la hora del valor.

Si la fecha_de_inicio es más reciente que la fecha_de_finalización, se devuelve un valor negativo.

Salida

Numérico. La cantidad de días no laborables del período para el cual se calculan los días laborables.

Ejemplos

Ejemplos básicos

Valores de entrada literales

Devuelve 5 (la cantidad de días laborables entre el lunes 02 de marzo de 2015 y el domingo 08 de marzo de 2015 (inclusive):

WORKDAY(`20150302`; `20150308`)

Devuelve 6 (la cantidad de días laborables entre el lunes 02 de marzo de 2015 y el domingo 08 de marzo de 2015 (inclusive), cuando el domingo es el único día no laborable):

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

Devuelve 5 (la cantidad de días laborables entre el domingo 01 de marzo de 2015 y el sábado 07 de marzo de 2015 (inclusive), cuando el viernes y el sábado son los días no laborables):

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

Valores de entrada de campo

Devuelve la cantidad de días laborables entre cada fecha del campo Fecha_de_inicio y el 31 de diciembre de 2015 inclusive:

WORKDAY(Fecha_de_inicio ; `20151231`)

Devuelve la cantidad de días laborables entre cada fecha del campo Fecha_de_inicio y una fecha correspondiente en el campo Fecha_de_finalización (inclusive):

  • Los días festivos obligatorios se incluyen en el total de días laborables y se pueden excluir con un cálculo independiente.
  • La devolución de un valor negativo indica que la fecha de inicio es más reciente que una fecha de finalización.
WORKDAY(Fecha_de_inicio ; Fecha_de_finalización)

Observaciones

Formatos de fecha

Un campo especificado para fecha_de_inicio o fecha_de_finalización puede utilizar cualquier formato de fecha, siempre que la definición del campo establezca correctamente el formato.

Al especificar un valor literal de fecha para fecha_de_inicio o fecha_de_finalización, solo puede utilizar los formatos AAAAMMDD y AAMMDD y debe encerrar el valor entre acentos graves; por ejemplo, `20141231`.

Días no laborables que no son ni sábado ni domingo

La capacidad de especificar días no laborables, además de los sábados y los domingos, le permite utilizar la función WORKDAY( ) con datos que no se basan en una semana de trabajo de lunes a viernes o en una semana de trabajo que no tiene cinco días.

Por ejemplo, si especifica "Sun" por sí mismo como un día no laborable, puede crear una semana de trabajo de seis días, de lunes a sábado.

Detección de los días festivos obligatorios

La función WORKDAY( ) no tiene en cuenta los días festivos obligatorios y esto significa que el valor que devuelve tal vez no refleje la cantidad real de días laborables de un periodo, si este período incluye uno o más días festivos obligatorios.

Script "Calcular los días laborables" en ScriptHub

Si necesita detectar los días festivos obligatorios, una opción es utilizar el script Calcular los días laborables de ScriptHub, que acepta una lista de días festivos definida por el usuario.

Para datos que cubren períodos de tiempo más extensos e incluyen varios días festivos, el uso del script probablemente sea el enfoque más sencillo. Si desea obtener más información, consulte “Importar scripts desde ScriptHub” en la Guía del usuario de Analytics.

En el caso de períodos de tiempo más cortos, con solo tres o cuatro días festivos, como un trimestre, tal vez pueda crear un campo calculado condicional, como se describe a continuación.

Campo calculado condicional para detectar los días festivos obligatorios

Si es necesario, puede crear un campo calculado condicional para detectar los días festivos obligatorios en el valor que devuelve la función WORKDAY( ).

Por ejemplo, para los datos del primer trimestre de 2015, podría restar 1 al valor que obtuvo con WORKDAY( ) por cada día festivo que caiga en un período especificado:

  • 01 enero 2015
  • 19 enero 2015
  • 16 febrero 2015

El ejemplo que se incluye a continuación sirve para períodos con cualquier fecha de inicio y fecha de finalización dentro del trimestre.

Primero crea un campo calculado, por ejemplo Días_laborables, que calcule los días laborables para todos los períodos del trimestre:

DEFINE FIELD Días_laborables COMPUTED WORKDAY(Fecha_de_inicio ; Fecha_de_finalización)

A continuación, crea un campo calculado condicional, por ejemplo Días_laborables_no_festivos, que ajusta el valor que devuelve el primer campo calculado (Días_laborables):

DEFINE FIELD Días_laborables_no_festivos COMPUTED
 
Días_laborables-1 IF Fecha_de_inicio = `20150101` AND Fecha_de_finalización < `20150119`
Días_laborables-2 IF Fecha_de_inicio = `20150101` AND Fecha_de_finalización < `20150216`
Días_laborables-3 IF Fecha_de_inicio = `20150101` AND Fecha_de_finalización < `20150331`
Días_laborables    IF Fecha_de_inicio < `20150119` AND Fecha_de_finalización < `20150119`
Días_laborables-1 IF Fecha_de_inicio < `20150119` AND Fecha_de_finalización < `20150216`
Días_laborables-2 IF Fecha_de_inicio < `20150119` AND Fecha_de_finalización <= `20150331`
Días_laborables-1 IF Fecha_de_inicio = `20150119` AND Fecha_de_finalización < `20150216`
Días_laborables-2 IF Fecha_de_inicio = `20150119` AND Fecha_de_finalización <= `20150331`
Días_laborables    IF Fecha_de_inicio < `20150216` AND Fecha_de_finalización < `20150216`
Días_laborables-1 IF Fecha_de_inicio < `20150216` AND Fecha_de_finalización <= `20150331`
Días_laborables-1 IF Fecha_de_inicio = `20150216` AND Fecha_de_finalización <= `20150331`
Días_laborables   IF Fecha_de_inicio < `20150331` AND Fecha_de_finalización <= `20150331`
Días laborables

Nota

El orden de las condiciones del campo calculado condicional es importante.

Analytics evalúa varias condiciones comenzando por el principio. La primera condición que evalúa como verdadera para un registro asigna el valor del campo calculado condicional para ese registro. La siguiente condición que evalúa como verdadera no modifica el valor asignado.

Guía de creación de scripts de ACL 14.1