Função WORKDAY( )

Retorna o número de dias úteis entre duas datas.

Sintaxe

WORKDAY(data_início; data_término <;dias_não_úteis>)

Parâmetros

Nome Tipo Descrição
data_inicial

datahora

A data inicial do período para cálculo de dias úteis. A data inicial é incluída no período.

data_final datahora A data final do período para cálculo de dias úteis. A data final é incluída no período.
dias_não_úteis

opcional

caractere

Especifica quais dias da semana são dias de fim de semana, ou dias não úteis, e os exclui do cálculo. Se você omitir o parâmetro dias_não_úteis, sábado e domingo serão usados como os dias não úteis padrão.

Insira dias_não_úteis usando as abreviações a seguir, separadas por espaço ou vírgula:

  • Seg
  • Ter
  • Qua
  • Qui
  • Sex
  • Sáb
  • Dom

dias_não_úteis não diferencia minúsculas e maiúsculas. As abreviações devem ser inseridas em inglês, mesmo que você esteja usando uma versão do Analytics que não esteja em inglês:

"Sex, Sáb, Dom"

Nota

Você pode especificar um valor datahora para data_inicial ou data_final, mas a parte da hora do valor será ignorada.

Se data_inicial for mais recente que data_final, será retornado um valor negativo.

Saída

Numérico. O número de dias úteis no período para cálculo de dias úteis.

Exemplos

Exemplos básicos

Valores de entrada literal

Retorna 5 (o número de dias úteis entre segunda-feira, 2 de março de 2015 e domingo, 8 de março de 2015 inclusive):

WORKDAY(`20150302`; `20150308`)

Retorna 6 (o número de dias úteis entre segunda-feira, 2 de março de 2015 e domingo, 8 de março de 2015 inclusive, quando domingo é o único dia não útil):

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

Retorna 5 (o número de dias úteis entre domingo, 1º de março de 2015 e sábado, 1 de março de 2015 inclusive, quando sexta-feira e sábado não são dias úteis):

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

Você também pode usar a função para calcular o número de dias de fim de semana em um intervalo de datas.

Retorna 2 (o número de dias de fim de semana entre segunda-feira, 2 de março de 2015 e domingo, 8 de março de 2015 inclusive):

WORKDAY(`20150302`; `20150308`; "Seg, Ter, Qua, Qui, Sex")

Valores de entrada de campo

Retorna o número de dias úteis entra cada data no campo Data_inicial e 31 de dezembro de 2015 inclusive:

WORKDAY(data_inicial; `20151231`)

Retorna o número de dias úteis entra cada data no campo Data_inicial e uma data correspondente no campo Data_final inclusive:

  • Os feriados legais são incluídos no total de dias úteis e pode ser necessário considerá-los usando um cálculo separado
  • Um valor de retorno negativo indica uma data inicial posterior à data final
WORKDAY(data_inicial; data_final)

Observações

Às vezes, pode ser um desafio usar corretamente as data e hora. Na Ajuda, os tópicos de função descrevem os detalhes específicos do funcionamento de cada função. Para obter informações sobre algumas considerações gerais ao usar as funções de data e hora, consulte os seguintes tópicos:

Formatos de data

Um campo especificado para data_inicial ou data_final pode usar qualquer formato de data, desde que a definição do campo defina corretamente o formato.

Ao especificar um valor literal de data para data_inicial ou data_final, você está restrito aos formatos AAAAMMDD e AAMMDD e o valor deve estar entre apóstrofos invertidos – por exemplo, `20141231`.

Dias não úteis diferentes de sábado e domingo

A capacidade de especificar dias não úteis diferentes de sábado e domingo permite usar a função WORKDAY( ) com dados não baseados em uma semana de trabalho de segunda-feira à sexta-feira, ou em uma semana de trabalho de cinco dias.

Por exemplo, se você especificar o próprio Sun como um dia não útil, cria uma semana de trabalho de seis dias, de segunda-feira ao sábado.

Consideração de feriados legais

A função WORKDAY( ) não considera feriados legais, o que significa que o valor retornado pode não refletir o número real de dias úteis se o período contém um ou mais feriados legais.

Script "Calcular dias úteis" no ScriptHub

Se você precisa considerar os feriados legais, uma opção é usar o script Calcular dias úteis do ScriptHub, que aceita uma lista de feriados definidos pelo usuário.

Para dados que abrangem períodos maiores e incluem diversos feriados, a melhor abordagem é provavelmente usar o script. Para obter mais informações, consulte Importação do ScriptHub.

Para períodos menores com apenas três ou quatro feriados, como um trimestre, pode ser mais fácil criar o campo calculado condicional descrito a seguir.

Campo calculado condicional para deduzir feriados legais

Se necessário, você pode criar um campo calculado condicional para deduzir feriados legais do valor retornado pela função WORKDAY( ).

Por exemplo, para os dados do primeiro trimestre de 2015, você pode subtrair 1 do valor retornado por WORKDAY( ) para cada um destes feriados do período especificado:

  • 1º de janeiro de 2015
  • 19 de janeiro de 2015
  • 16 de fevereiro de 2015

O exemplo a seguir acomoda períodos com qualquer data inicial e final durante o trimestre.

Primeiro, crie um campo calculado como, por exemplo, Dias_úteis, que calcula os dias úteis para um período específico durante o trimestre:

DEFINE FIELD Dias_úteis COMPUTED WORKDAY(data_inicial; data_final)

Em seguida, crie um campo calculado condicional como, por exemplo Dias_úteis_sem_feriados, que ajusta o valor retornado pelo primeiro campo calculado (Dias_úteis):

DEFINE FIELD Dias_úteis_sem_feriados COMPUTED
 
Dias_úteis-1 IF data_inicial = `20150101` AND data_final < `20150119`
Dias_úteis-2 IF data_inicial = `20150101` AND data_final < `20150216`
Dias_úteis-3 IF data_inicial = `20150101` AND data_final <= `20150331`
Dias_úteis   IF data_inicial < `20150119` AND data_final < `20150119`
Dias_úteis-1 IF data_inicial < `20150119` AND data_final < `20150216`
Dias_úteis-2 IF data_inicial < `20150119` AND data_final <= `20150331`
Dias_úteis-1 IF data_inicial = `20150119` AND data_final < `20150216`
Dias_úteis-2 IF data_inicial = `20150119` AND data_final <= `20150331`
Dias_úteis   IF data_inicial < `20150216` AND data_final < `20150216`
Dias_úteis-1 IF data_inicial < `20150216` AND data_final <= `20150331`
Dias_úteis-1 IF data_inicial = `20150216` AND data_final <= `20150331`
Dias_úteis   IF data_inicial < `20150331` AND data_final <= `20150331`
Dias_úteis

Nota

A ordem das condições no campo calculado condicional é importante.

O Analytics avalia várias condições começando pela parte superior. A primeira condição avaliada como verdadeira para um registro atribui o valor do campo calculado condicional a esse registro. Uma condição subsequente avaliada como verdadeira não altera o valor atribuído.