Tabla de contenido
Si está buscando una función de Excel para obtener el día de la semana a partir de una fecha, ha aterrizado en la página correcta. Este tutorial le enseñará cómo utilizar la fórmula WEEKDAY en Excel para convertir una fecha en un nombre de día de la semana, filtrar, resaltar y contar fines de semana o días laborables, y mucho más.
Existe una gran variedad de funciones para trabajar con fechas en Excel. La función de día de la semana (WEEKDAY) es especialmente útil para planificar y programar, por ejemplo, para determinar el plazo de un proyecto y eliminar automáticamente los fines de semana del total. Así pues, repasemos los ejemplos uno a uno y veamos cómo pueden ayudarle a enfrentarse a diversas tareas relacionadas con fechas en Excel.
WEEKDAY - Función Excel para el día de la semana
La función de Excel WEEKDAY se utiliza para devolver el día de la semana de una fecha dada.
El resultado es un número entero, que va de 1 (domingo) a 7 (sábado) por defecto. Si su lógica de negocio requiere una enumeración diferente, puede configurar la fórmula para que empiece a contar con cualquier otro día de la semana.
La función WEEKDAY está disponible en todas las versiones de Excel 365 hasta 2000.
La sintaxis de la función WEEKDAY es la siguiente:
WEEKDAY(número_de_serie, [tipo_de_retorno])Dónde:
Número_de_serie (obligatorio) - la fecha que desea convertir en el número del día de la semana. Puede suministrarse como un número de serie que representa la fecha, como una cadena de texto en el formato que Excel entiende, como una referencia a la celda que contiene la fecha o utilizando la función FECHA.
Tipo_de_retorno (opcional) - determina el día de la semana que se utilizará como primer día. Si se omite, se utilizará por defecto la semana Sol-Sábado.
Aquí tiene una lista de todos los productos compatibles tipo_de_retorno valores:
Tipo_de_retorno | Número devuelto |
---|---|
1 u omitido | De 1 (domingo) a 7 (sábado) |
2 | De 1 (lunes) a 7 (domingo) |
3 | De 0 (lunes) a 6 (domingo) |
11 | De 1 (lunes) a 7 (domingo) |
12 | De 1 (martes) a 7 (lunes) |
13 | Del 1 (miércoles) al 7 (martes) |
14 | De 1 (jueves) a 7 (miércoles) |
15 | De 1 (viernes) a 7 (jueves) |
16 | De 1 (sábado) a 7 (viernes) |
17 | De 1 (domingo) a 7 (sábado) |
Nota. tipo_de_retorno Los valores 11 a 17 se introdujeron en Excel 2010, por lo que no pueden utilizarse en versiones anteriores.
Fórmula básica WEEKDAY en Excel
Para empezar, veamos cómo utilizar la fórmula WEEKDAY en su forma más simple para obtener el número de día a partir de la fecha.
Por ejemplo, para obtener el día de la semana a partir de la fecha en C4 con la semana por defecto de domingo a sábado, la fórmula es:
=DÍA DE LA SEMANA(C4)
Si dispone de un número de serie que representa la fecha (por ejemplo, traído por la función DATEVALUE), puede introducir ese número directamente en la fórmula:
=DÍA DE LA SEMANA(45658)
También puede escribir la fecha como una cadena de texto entre comillas directamente en la fórmula, pero asegúrese de utilizar el formato de fecha que Excel espera y puede interpretar:
=DÍA DE LA SEMANA("1/1/2025")
O bien, proporcione la fecha de origen de forma 100% fiable utilizando la función FECHA:
=DÍA DE LA SEMANA(FECHA(2025, 1,1))
Para utilizar una asignación de días distinta de la predeterminada Sol-Sábado, introduzca un número adecuado en el segundo argumento. Por ejemplo, para empezar a contar los días a partir del lunes, la fórmula es:
=DÍA DE LA SEMANA(C4, 2)
En la imagen siguiente, todas las fórmulas devuelven el día de la semana correspondiente al 1 de enero de 2025, que se almacena como el número 45658 internamente en Excel. Dependiendo del valor establecido en el segundo argumento, las fórmulas arrojan resultados diferentes.
A primera vista, puede parecer que los números devueltos por la función WEEKDAY tienen muy poco sentido práctico. Pero veámoslo desde otro ángulo y analicemos algunas fórmulas que resuelven tareas de la vida real.
Cómo convertir una fecha de Excel en el nombre de un día de la semana
Por diseño, la función HOY DE LA SEMANA de Excel devuelve el día de la semana como un número. Para convertir el número del día de la semana en el nombre del día, emplee la función TEXTO.
Para obtener nombres para todo el día utilice el código de formato "dddd":
TEXT(DÍA DE LA SEMANA( fecha ), "dddd")Para volver nombres abreviados de los días el código de formato es "ddd":
TEXT(DÍA DE LA SEMANA( fecha ), "ddd")Por ejemplo, para convertir la fecha en A3 al nombre del día de la semana, la fórmula es:
=TEXT(WEEKDAY(A3), "dddd")
O
=TEXT(WEEKDAY(A3), "ddd")
Otra posible solución es utilizar WEEKDAY junto con la función CHOOSE.
Por ejemplo, para obtener un nombre abreviado del día de la semana a partir de la fecha en A3, la fórmula es la siguiente:
=CHOOSE(WEEKDAY(A3), "Sun", "Mon", "Tus", "Wed", "Thu", "Fri", "Sat")
Aquí, WEEKDAY devuelve un número de serie del 1 (dom) al 7 (sáb) y CHOOSE selecciona el valor correspondiente de la lista. Como la fecha en A3 (miércoles) corresponde a 4, CHOOSE da como resultado "Wed", que es el 4º valor de la lista.
Aunque la fórmula ELEGIR es un poco más engorrosa de configurar, proporciona más flexibilidad permitiéndole dar salida a los nombres de los días en el formato que desee. En el ejemplo anterior, mostramos los nombres de los días abreviados. En cambio, puede dar salida a los nombres completos, abreviaturas personalizadas o incluso nombres de días en un idioma diferente.
Consejo: Otra forma sencilla de convertir una fecha en el nombre del día de la semana es aplicar un formato de fecha personalizado. Por ejemplo, el formato de código "dddd, mmmm d, aaaa" hará que la fecha se muestre como " Viernes, 3 de enero de 2025 " mientras que "dddd" sólo mostrará " Viernes ".
Fórmula de Excel WEEKDAY para buscar y filtrar días laborables y fines de semana
Cuando se trata de una larga lista de fechas, puede que le interese saber cuáles son días laborables y cuáles fines de semana.
A identificar fines de semana y días laborables en Excel, construya una sentencia IF con la función anidada WEEKDAY. Por ejemplo:
=IF(WEEKDAY(A3, 2)<6, "Día laborable", "Fin de semana")
Esta fórmula va a la celda A3 y se copia hacia abajo en tantas celdas como sea necesario.
En la fórmula WEEKDAY, se establece tipo_de_retorno a 2, que corresponde a la semana de lunes a domingo en la que el lunes es el día 1. Por lo tanto, si el número de días de la semana es inferior a 6 (de lunes a viernes), la fórmula devuelve "Día laborable", en caso contrario - "Fin de semana".
A filtrar fines de semana o días laborables aplique el filtro de Excel al conjunto de datos ( Datos tab> Filtro ) y seleccione "Fin de semana" o "Día laborable".
En la siguiente captura de pantalla, hemos filtrado los días laborables, de modo que sólo se ven los fines de semana:
Si alguna oficina regional de su organización trabaja con un horario diferente en el que los días de descanso son distintos del sábado y el domingo, puede ajustar fácilmente la fórmula WEEKDAY a sus necesidades especificando un tipo_de_retorno .
Por ejemplo, para tratar Sábado y Lunes como fines de semana, establezca tipo_de_retorno a 12, por lo que obtendrá el tipo de semana "de martes (1) a lunes (7)":
=IF(WEEKDAY(A2, 12)<6, "Día laborable", "Fin de semana")
Cómo resaltar los fines de semana y los días laborables en Excel
Para distinguir de un vistazo los fines de semana y los días laborables de la hoja de cálculo, puede sombrearlos automáticamente en distintos colores. Para ello, utilice la fórmula de día de la semana/fin de semana del ejemplo anterior con formato condicional de Excel. Como la condición está implícita, sólo necesitamos la función básica WEEKDAY sin la envoltura IF.
A fines de semana destacados (sábado y domingo):
=WEEKDAY($A2, 2)<6
A destaque los días laborables (de lunes a viernes):
=WEEKDAY($A2, 2)>5
Donde A2 es la celda superior izquierda del rango seleccionado.
Para configurar la regla de formato condicional, los pasos son:
- Seleccione la lista de fechas (A2:A15 en nuestro caso).
- En el Inicio en la pestaña Estilos grupo, haga clic en Formato condicional > Nueva norma .
- En el Nueva regla de formato seleccione Utilizar una fórmula para determinar qué celdas formatear .
- En el Formatear valores con esta fórmula es casilla verdadera, introduzca la fórmula antes mencionada para fines de semana o días laborables.
- Haga clic en el botón Formato y seleccione el formato deseado.
- Haga clic en OK dos veces para guardar los cambios y cerrar las ventanas de diálogo.
Para obtener información detallada sobre cada paso, consulte Cómo configurar el formato condicional con fórmula.
El resultado es muy bonito, ¿verdad?
Cómo contar los días laborables y los fines de semana en Excel
Para obtener el número de días de la semana o fines de semana en la lista de fechas, puede utilizar la función WEEKDAY en combinación con SUM. Por ejemplo:
A contar fines de semana la fórmula en D3 es:
=SUMA(--(WEEKDAY(A3:A20, 2)>5))
A contar días laborables la fórmula en D4 toma esta forma:
=SUMA(--(WEEKDAY(A3:A20, 2)<6))
En Excel 365 y Excel 2021 que manejan matrices de forma nativa, esto funciona como una fórmula regular como se muestra en la captura de pantalla a continuación. En Excel 2019 y versiones anteriores, presione Ctrl + Shift + Enter para convertirlo en una fórmula de matriz.
Cómo funcionan estas fórmulas:
La función WEEKDAY con tipo_de_retorno ajustado a 2 devuelve un número de día del 1 (Lun) al 7 (Dom) para cada fecha del intervalo A3:A20. La expresión lógica comprueba si los números devueltos son mayores que 5 (para fines de semana) o menores que 6 (para días laborables). El resultado de esta operación es una matriz de valores TRUE y FALSE.
La doble negación (--) coacciona los valores lógicos a 1's y 0's. Y la función SUM los suma. Dado que 1 (TRUE) representa los días a contar y 0 (FALSE) los días a ignorar, se obtiene el resultado deseado.
Consejo: para calcular días laborables entre dos fechas utilice la función NETWORKDAYS o NETWORKDAYS.INTL.
Si es entre semana, entonces, si es sábado o domingo, entonces
Por último, vamos a discutir un caso un poco más específico que muestra cómo determinar el día de la semana, y si es sábado o domingo entonces hacer algo, si un día de la semana entonces hacer otra cosa.
IF(DÍA DE LA SEMANA( célula , 2)>5, if_weekend_then , si_día_semana_entonces )Suponga que está calculando pagos para empleados que han realizado algún trabajo extra en sus días libres, por lo que necesita aplicar diferentes tasas de pago para días laborables y fines de semana. Esto se puede hacer utilizando la siguiente sentencia IF:
- En el prueba_lógica anida la función WEEKDAY que comprueba si un día determinado es laborable o fin de semana.
- En el value_if_true multiplique el número de horas de trabajo por la tarifa de fin de semana (G4).
- En el value_if_false multiplique el número de horas de trabajo por la tarifa por día de trabajo (G3).
La fórmula completa en D3 tiene esta forma:
=IF(WEEKDAY(B3, 2)>5, C3*$G$4, C3*$G$3)
Para que la fórmula se copie correctamente en las celdas de abajo, asegúrese de bloquear las direcciones de las celdas de tasa con el signo $ (como $G$4).
La función WEEKDAY no funciona
En general, hay dos errores comunes que puede devolver una fórmula WEEKDAY:
#Se produce un error si
- Número_de_serie o tipo_de_retorno no es numérico.
- Número_de_serie está fuera del intervalo de fechas admitido (1900 a 9999).
El error #NUM! se produce cuando tipo_de_retorno está fuera del rango permitido (1-3 o 11-17).
Así es como se utiliza la función WEEKDAY en Excel para manipular los días de la semana. En el próximo artículo, exploraremos las funciones de Excel para operar con unidades de tiempo mayores, como semanas, meses y años. Por favor, permanezca atento y ¡gracias por leer!
Cuaderno de prácticas para descargar
Fórmula WEEKDAY en Excel - ejemplos (.xlsx file)