Táboa de contidos
Este pequeno titorial explica o uso das funcións NETWORKDAYS e WORKDAY de Excel para calcular días laborables con parámetros de fin de semana e festivos personalizados.
Microsoft Excel ofrece dúas funcións especialmente deseñadas para calcular días laborables: WORKDAY e WORKDAY. NETWORKDAYS.
A función WORKDAY devolve unha data N días laborables no futuro ou no pasado e pode usala para engadir ou restar días laborables a unha data determinada.
Utilizando a función NETWORKDAYS , pode calcular o número de días laborables entre dúas datas que especifique.
En Excel 2010 e superior, están dispoñibles modificacións máis potentes das devanditas funcións, WORKDAY.INTL e NETWORKDAYS.INTL, que che permiten definir cales e cantos días son días de fin de semana.
E agora, vexamos cada función e vexamos como podes usala para calcular os días laborables en as túas follas de traballo de Excel.
Función Excel WORKDAY
A función Excel WORKDAY devolve unha data que é un número determinado de días laborables antes ou antes da data de inicio. Exclúe os fins de semana e os festivos que especifique.
A función WORKDAY está destinada a calcular días laborables, fitos e datas de vencemento baseándose no calendario laboral estándar, sendo sábado e domingo os días de fin de semana.
WORKDAY é unha función integrada en Excel 2007 - 365. Nas versións anteriores, cómpre activar a Análiseun pequeno conxunto de cousas esenciais e derivar o resto. Grazas por ler e espero ver no noso blog a vindeira semana!
ToolPak.Ao usar WORKDAY en Excel, tes que introducir os seguintes argumentos:
WORKDAY(data_inicio, días, [vacacións])Os 2 primeiros argumentos son obrigatorios e o último é opcional :
- Data_inicio : a data a partir da cal comezar a contar os días laborables.
- Días : o número de días laborables para engadir/restar dende data_inicio. Un número positivo devolve unha data futura, un número negativo devolve unha data pasada.
- Vacacións : unha lista opcional de datas que non se deben contar como días laborables. Pode ser un intervalo de celas que conteñen as datas que quere excluír dos cálculos ou unha constante matricial dos números de serie que representan as datas.
Agora que coñeces o básico, vexamos como fas. pode usar a función WORKDAY nas súas follas de traballo de Excel.
Como usar WORKDAY para engadir ou restar días laborables ata a data
Para calcular días laborables en Excel, siga estas regras sinxelas:
- Para sumar días laborables, introduza un número positivo como argumento días dunha fórmula WORKDAY.
- Para restar días laborables, use un número negativo no argumento días .
Supoño que tes unha data de inicio na cela A2, unha lista de festivos nas celas B2:B5 e queres descubrir o data 30 días laborables no futuro e pasado. Podes facelo usando as seguintes fórmulas:
Para engadir 30 días laborables á data de inicio, excluíndo os festivos enB2:B5:
=WORKDAY(A2, 30, B2:B5)
Para restar 30 días laborables da data de inicio, excluíndo os festivos en B2:B5:
=WORKDAY(A2, -30, B2:B5)
Para calcular os días laborables en función de na data actual , use a función TODAY() como data de inicio:
Para engadir 30 días laborables á data de hoxe:
=WORKDAY(TODAY(), 30)
Para resta 30 días laborables da data de hoxe:
=WORKDAY(TODAY(), -30)
Para proporcionar a data de inicio directamente á fórmula, use a función DATE:
=WORKDAY(DATE(2015,5,6), 30)
O A seguinte captura de pantalla mostra os resultados de todas estas fórmulas e algunhas máis de WORKDAY:
E, por suposto, podes introducir o número de días laborables para engadir/restar da data de inicio en algunha cela e, a continuación, refírese a esa cela na súa fórmula. Por exemplo:
=WORKDAY(A2, C2)
Onde A2 é a data de inicio e C2 é o número de días que non son de fin de semana atrás (números negativos) ou antes (números positivos) da data de inicio, sen vacacións para excluír.
Consello. En Excel 365 e 2021, pode usar WORKDAY en combinación con SEQUENCE para xerar unha serie de días laborables.
Función de Excel WORKDAY.INTL
WORKDAY.INTL é unha modificación máis potente da WORKDAY. función que funciona con parámetros de fin de semana personalizados . Ademais de WORKDAY, devolve unha data que é un número especificado de días laborables no futuro ou no pasado, pero permíteche determinar cales son os días da semana que se deben considerar días de fin de semana.
A función WORKDAY.INTL foi introducido enExcel 2010 non está dispoñible en versións anteriores de Excel.
A sintaxe da función Excel WORKDAY.INTL é a seguinte:
WORKDAY.INTL(data_inicio, días, [fin de semana], [vacacións])Os dous primeiros argumentos son necesarios e son semellantes aos de WORKDAY:
Data_inicio : a data inicial.
Días : o número de días laborables antes (valor negativo) ou despois (valor positivo) da data de inicio. Se o argumento days
se proporciona como un número decimal, truncase ao número enteiro.
Os dous últimos argumentos son opcionais:
Fin de semana - especifica que días da semana deben ser contados como días de fin de semana. Pode ser un número ou unha cadea, como se demostra a continuación.
Número | Días de fin de semana |
1 ou omitido | Sábado, domingo |
2 | Domingo, luns |
3 | Luns, martes |
4 | Martes, mércores |
5 | Mércores, xoves |
6 | Xoves, venres |
7 | Venres, sábado |
11 | Só domingo |
12 | Só luns |
13 | Só martes |
14 | Só mércores |
15 | Só xoves |
16 | Só venres |
17 | Só sábado |
Cadea de fin de semana : unha serie de sete 0 e 1 que representan sete días da semana.comezando polo luns. 1 representa un día non laborable e 0 representa un día laborable. Por exemplo:
- "0000011": sábado e domingo son fins de semana.
- "1000001": luns e domingo son fins de semana.
A primeira vista , as cadeas de fin de semana poden parecer superfluas, pero persoalmente gústame máis este método porque podes facer unha cadea de fin de semana sobre a marcha sen ter que lembrar ningún número.
Vacacións : unha lista opcional de datas. quere excluír do calendario de xornada laboral. Este pode ser un intervalo de celas que conteñan as datas ou unha constante de matriz dos valores en serie que representan esas datas.
Uso de WORKDAY.INTL en Excel - exemplos de fórmulas
Ben, o volume bastante grande da teoría que acabamos de comentar pode parecer bastante complicado e confuso, pero probar as fórmulas facilitará as cousas.
No noso conxunto de datos, coa data de inicio na cela A2 e unha lista de vacacións en A5 :A8, calculemos os días laborables con fins de semana personalizados.
Para engadir 30 días laborables á data de inicio, venres e sábados contados como fins de semana e festivos en A5:A8 excluído:
=WORKDAY.INTL(A2, 30, 7, A5:A8)
ou
=WORKDAY.INTL(A2, 30, "0000110", A5:A8)
Para restar 30 días laborables desde a data de inicio, domingos e luns contados como fins de semana e festivos en A5:A8 excluídos :
=WORKDAY.INTL(A2, -30, 2, A5:A8)
ou
=WORKDAY.INTL(A2, -30, "1000001", A5:A8)
Para engadir 10 días laborables á data actual , sendo o domingo o único día de fin de semana, nonvacacións:
=WORKDAY.INTL(TODAY(), 10, 11)
ou
=WORKDAY.INTL(A2, 10, "0000001")
Na túa folla de Excel, as fórmulas poden parecer similares a esta:
Nota. Tanto as funcións de Excel WORKDAY como WORKDAY.INTL devolven números de serie que representan as datas. Para mostrar eses números como datas, seleccione as celas cos números e prema Ctrl+1 para abrir o diálogo Formatar celas . Na pestana Número , seleccione Data na lista Categoría e escolla o formato de data que desexe. Para obter os pasos detallados, consulte Como cambiar o formato de data en Excel.
Erros de Excel WORKDAY e WORKDAY.INTL
Se a súa fórmula de Excel WORKDAY ou WORKDAY.INTL devolve un erro, é probable que o motivo sexa un dos seguintes:
# O erro NUM! ocorre se:
- unha combinación dos argumentos
start_date
edays
dá lugar a unha data non válida ou o - o argumento
weekend
da función WORKDAY.INTL non é válido Prodúcese un erro .
#VALUE! se:
-
start_date
ou calquera valor deholidays
non é unha data válida, ou -
days
argumento non é numérico.
Función NETWORKDAYS de Excel
A función NETWORKDAYS en Excel devolve o número de días laborables entre dúas datas, excluíndo os fins de semana e, opcionalmente, os festivos que especificar.
A sintaxe de Excel NETWORKDAYS é intuitiva e fácil de lembrar:
NETWORKDAYS(data_inicio, data_fin, [vacacións])Os dous primeiros argumentos son obrigatorios e o terceiro éopcional:
- Data_inicio : data inicial a partir da cal comezar a contar os días laborables.
- Data_fin : fin do período para o cal estás contando días laborables.
Tanto a data de inicio como a data de finalización cóntanse no número de días laborables devoltos.
- Vacacións : unha lista opcional de vacacións que non deberían contarse como días laborables.
Como usar NETWORKDAYS en Excel - exemplo de fórmula
Digamos que tes unha lista de vacacións nas celas A2:A5, datas de inicio na columna B, datas de finalización na columna C e quere saber cantos días laborables hai entre estas datas. A fórmula NETWORKDAYS axeitada é fácil de descubrir:
=NETWORKDAYS(B2, C2, $A$2:$A$5)
Teña en conta que a función NETWORKDAYS de Excel devolve un valor positivo cando a data de inicio é menor que a data de finalización e un valor negativo se o a data de finalización é máis recente que a data de inicio (como na fila 5):
Función de Excel NETWORKDAYS.INTL
Como NETWORKDAYS, a función NETWORKDAYS.INTL de Excel calcula o número de días laborables entre dúas datas, pero permíteche especificar cales son os días que se deben contar como días de fin de semana.
A sintaxe da función NETWORKDAYS.INTL é moi semellante á NETWORKDAYS', agás que ten o [fin de semana adicional] ] parámetro que indica que días da semana se deben contar como fins de semana.
NETWORKDAYS.INTL( data_inicio, data_fin, [fin de semana], [vacacións] ) O argumento weekend
pode aceptarben un número ou unha cadea. Os números e as cadeas de fin de semana son exactamente os mesmos que no parámetro weekend
da función WORKDAY.INTL.
A función NETWORKDAYS.INTL está dispoñible en Excel 365 - 2010.
Uso de NETWORKDAYS.INTL en Excel - exemplo de fórmula
Utilizando a lista de datas do exemplo anterior, calculemos o número de días laborables entre dúas datas sendo o domingo o único día de fin de semana. Para iso, escribe o número 11 no argumento weekend
da túa fórmula NETWORKDAYS.INTL ou crea unha cadea de seis 0 e un 1 ("0000001"):
=NETWORKDAYS.INTL(B2, C2, 11, $A$2:$A$5)
Ou
=NETWORKDAYS.INTL(B2, C2, "0000001", $A$2:$A$5)
A seguinte captura de pantalla demostra que ambas fórmulas devolven resultados absolutamente idénticos.
Como destacar os días laborables en Excel
Uso coas funcións WORKDAY e WORKDAY.INTL, non só pode calcular días laborables nas súas follas de cálculo de Excel, senón tamén destacalos segundo o requira a súa lóxica empresarial. Para iso, crea unha regra de formato condicional cunha fórmula WORKDAY ou WORKDAY.INTL.
Por exemplo, nunha lista de datas da columna B, imos destacar só as datas futuras que están dentro de 15 días laborables desde a data de hoxe. , excluíndo dous festivos nas celas A2:A3. A fórmula máis obvia que se me ocorre é a seguinte:
=AND($B2>TODAY(), $B2<=WORKDAY(TODAY(), 15, $A$2:$A$3))
A primeira parte da proba lóxica corta as datas pasadas, é dicir, verifica se unha data é igual ou superior á actual. : $B2>HOXE(). E na segunda parte, verificasse unha data non supera os 15 días laborables no futuro, excluíndo os días de fin de semana e os festivos especificados: $B2<=WORKDAY(TODAY(), 15, $A$2:$A$3)
A fórmula parece correcta, pero unha vez que crees unha regra baseada nela, entenderás que destaca mal datas:
Imos tentar descubrir por que ocorre iso. O problema non está na función WORKDAY, como alguén pode concluír. A función é correcta, pero... que fai realmente? Devolve unha data dentro de 15 días hábiles, excluíndo os días de fin de semana (sábado e domingo) e festivos nas celas A2:A3.
Está ben, e que fai a regra baseada nesta fórmula? Destaca TODAS as datas que son iguais ou superiores a hoxe e inferiores á data devolta pola función WORKDAY. ves? Todas as datas! Se non queres colorear os fins de semana e os festivos, debes dicirlle explícitamente a Excel que non o faga. Entón, estamos engadindo dúas condicións máis á nosa fórmula:
- A función WEEKDAY para excluír os fins de semana: WEEKDAY($B2, 2)<6
- A función COUNTIF para excluír festivos : COUNTIF($A$2:$A$3, $B2)=0
Como se demostra na seguinte captura de pantalla, a fórmula mellorada funciona perfectamente:
=AND($B2>TODAY(), $B2<=WORKDAY(TODAY(), 15, $A$2:$A$3), COUNTIF($A$2:$A$3, $B2)=0, WEEKDAY($B2, 2)<6)
Como ves, as funcións WORKDAY e WORKDAY.INTL fan que o cálculo de días laborables en Excel sexa rápido e sinxelo. Por suposto, é probable que as túas fórmulas da vida real sexan máis sofisticadas, pero coñecer os conceptos básicos axuda moito, porque só podes lembrar