16 junio, 2021

FÓRMULA PARA GENERAR LISTA DE FECHAS ENTRE DOS FECHAS

Hola a todos!.

Hace unos días os explicaba en LinkedIn un forma muy sencilla de generar una lista de fechas entre dos fechas: pincha aquí.

Y por otra parte, hace unos meses publiqué un post en el que os mostraba cómo programé una función definida para hacer esta tarea: FUNCIÓN PARA MOSTRAR RELACIÓN DE FECHAS ENTRE DOS FECHAS.

En ambos casos se obtiene o bien una lista de días naturales o bien una lista de días laborables entre dos fechas.

En el post de hoy voy a realizar esto pero utilizando fórmulas, y lo haré basándome en la función Secuencia, una fórmula de matriz dinámica y disponible para suscriptores de Office 365.

No me voy a extender explicando cada uno de los argumentos de la función, ya me conocéis y para eso está la documentación que ofrece Microsoft.

Por lo tanto, la fórmula para obtener los días naturales es la siguiente:

Me he tomado la libertad de utilizar la función Sifecha en la fórmula para calcular automáticamente los días a generar, pero si sabéis los días, solo tenéis que sustituirla por un número entero.

Como podéis observar se genera perfectamente el listado de fechas entre la fecha inicio y la fecha fin.

=SECUENCIA(SIFECHA(A2;B2;"D")+1;1;A2;1)

Para generar las fechas pero teniendo en cuenta los días hábiles o laborables, la función cambia y debemos utilizar otras funciones.

Os mostraré primero la fórmula completa y luego la iremos descomponiendo por partes:

=ORDENAR(UNICOS(SI(DIASEM(SECUENCIA(SIFECHA(A2;B2;"d")+1;1;A2;1);11)<6;SECUENCIA(SIFECHA(A2;B2;"d")+1;1;A2;1);"");0;0);1;1)

En primer lugar utilizamos la función secuencia para crear la lista de días, luego para detectar a qué día de la semana nos referimos debemos usar la función Diasem y en el segundo argumento elegir el 11 (Números del 1 (lunes) al 7 (domingo)).

Este paso dejará así el listado:

El siguiente paso consiste en utilizar un condicional para detectar los sábados y los domingos y dejar esas celdas vacías:

=SI(DIASEM(SECUENCIA(SIFECHA(A2;B2;"d")+1;1;A2;1);11)<6;SECUENCIA(SIFECHA(A2;B2;"d")+1;1;A2;1);"")

Ahora que ya podemos detectar los días no hábiles, debemos proceder a eliminarlos u ocultarlos. y esto lo vamos a hacer con las funciones ÚNICOS y ORDENAR ambas funciones de matriz dinámica.

Con la función únicos eliminamos todas las celdas en blanco menos una y con la función ordenar la pasamos al final de modo que no se mostrará en la secuencia de fechas.

Y este sería el resultado. ¿Os ha gustado?, espero que tanto como a mi, realmente lo he pasado bien componiendo esta función 🙂

Descarga el archivo de ejemplo pulsando en:

¿Te ha resultado de interés?, puedes apoyar a Excel Signum con una pequeña donación.

Donate Button with Credit Cards

¡¡Muchas gracias!!

Mediante la suscripción al blog, la realización comentarios o el uso del formulario de contacto estás dando tu consentimiento expreso al tratamiento de los datos personales proporcionados según lo dispuesto en la ley vigente (LOPD). Tienes más información al respecto en esta página del blog: Política de Privacidad y Cookies

Comparte este post

Si te ha gustado o tienes alguna duda, puedes dejar aquí tu comentario.

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies