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:
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:
- Usar datahoras em expressões
- Datahoras seriais
- Como os deslocamentos do UTC afetam as expressões de datahora
- Opções de data e hora
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.