Siguiendo con los artículos dedicados a fechas, vamos a ver diferentes formas de calcular los días transcurridos entre 2 fechas.

Empezaremos tomado un par de fechas al azar.

Tenemos un proyecto que empezamos en fecha 1 de enero y terminamos en fecha 30 de junio. Vamos a calcular cuantos días hemos dedicado a este proyecto.

Como ya vimos en otro post las fechas pueden ser tratadas de forma matemática por lo que nuestra primera opción es restarlas.

Excel nos devuelve que hemos dedicado 181 días al proyecto.

Además de la simple operación matemática también disponemos de la función DIAS que, dada una fecha de origen y una de destino, devuelve los días entre esas dos fechas.

Aquí la lógica de los nombres de los argumentos y nuestros datos nos señalan que la fecha_inicial corresponde con la indicada en la celda A2 mientras que la fecha_final es la de la celda B2.

Curiosamente colocar esas referencias, obtenemos un resultado negativo (!!!!).

Para positivar el resultado podemos hacer varias acciones:

  • Situar el signo – delante de la función –> =-DIAS(A2;B2)
  • Utilizar la función ABS –> =ABS(DIAS(A2;B2))
  • Cambiar el orden de los argumentos –> =DIAS(B2;A2)

Nota: para mi es un error de coherencia ya que mi esquema mental de Fecha más baja = fecha_inicial y Fecha más alta = fecha_final se viene abajo. Y más cuando en las siguientes funciones, si que es válido.

Bueno, esos valores sirven para un sistema esclavista dónde no se descansa ningún día.

Por fortuna hemos evolucionado y, gracias a la lucha de generaciones pasadas, se estableció unos días de descanso. Así que, en realidad, nos gustaría calcular los días laborables que se han dedicado al proyecto. Así que necesitamos calcular la cantidad de días laborables transcurridos entre las dos fechas.

Utilizaremos en este caso la función DIAS.LAB y así obtenemos los días que un asalariado habrá dedicado al proyecto.

Ahora es cuando mi esquema mental se viene abajo porque, en esta función, el argumento fecha_inicial si que corresponde con la más baja y la fecha_final con la más alta.

La función DIAS.LAB cuenta los días entre dos fechas dadas descontando los sábados y domingos.

Pero eso es lo que haría un asalariado «chungo». Además de conseguir fiesta los fines de semana, también disponemos de una serie de días festivos a lo largo del año. Vamos a hacer una lista con los festivos incluidos en ese período.

Durante el primer semestre, al menos en mi ámbito, disponemos de esta colección de festivos.

  • Año nuevo
  • Reyes
  • Viernes Santo
  • Lunes de Pascua
  • Fiesta del trabajo
  • San Juan

Nota: soy consciente de que hay festivos locales o de comunidad no indicados… pero es que así me sale mejor 😉

Para manejar cómodamente esa colección de festivos podemos convertirlos en una tabla o darle nombre al rango. Utilizaremos la segunda opción para que se llame rngFestivos.

Vamos a calcular ahora los laborables que un asalariado «guai» ha dedicado al proyecto utilizando el tercer argumento: festivos. Ese argumento espera un rango de celdas con la colección de días que se consideran vacacionales: o sea, nuestro rango que hemos llamado rngFestivos.

Hemos bajado de 130 días laborables a 125 porque Excel nos ha descontado los… ¡espera! ¿no habían 6 festivos en mi rngFestivos? A ver si Excel se está equivocando…

¿Podría ser que Excel sea más listo y ya esté descontado aquellos días festivos que ya caen en fin de semana? Vamos a verlo. Utilizando la función DIASEM podemos saber que número de día de la semana es cada uno de los festivos.

Al aplicar la función DIASEM utilizando como argumento el rango de festivos se convierte en una fórmula desbordada que devuelve una matriz derramada. Podemos ver que, de los 6 festivos, 2 caían en fin de semana así que quedan 4… espera, espera, ¿no habíamos quedado que se descontaban 5? ¿Porqué no me cuadra?

Definitivamente Excel no va bien.

Pues no, resulta que no hemos caído en que Microsoft son americanos y son más listos que nosotros. Nosotros trabajamos cinco días y luego descansamos. Ellos no, ellos empiezan la semana descansando.

Entonces nos percatamos (porque descubrir, ya estaba descubierto) que la función DIASEM tiene un segundo argumento llamado tipo que permite definir desde qué día de la semana se empieza a contar. Si no ponemos nada, empieza asignando el número 1 al domingo. Si cambiamos al tipo 2, la cosa se soluciona.

Ahora las cuentas ya salen mejor porque el día de Reyes cayó en sábado y, por lo tanto, ha sido previamente descontado.

¡Bien! Ya tenemos lo que tardaría si fuera un esclavo, un asalariado «chungo» o uno «guai». Pero tenemos más tipos de trabajadores… si, aquellos que son como un esclavo pero no lo son, los que no se pueden poner malos… ¿ya? ¡Exacto! LOS AUTONOMOS. Resulta que un autónomo, además de lo ya dicho, resulta que debe multiplicarse y no puede hacer fiesta el fin de semana completo: el sábado tiene que trabajar. Para calcular los laborables con un fin de semana distinto, utilizaremos la función DIAS.LAB.INTL. Esa función incluye un argumento fin_de_semana que nos permitirá indicar que día se hace fiesta. Se puede escoger entre 2 días consecutivos cualesquiera o un sólo día. Para nuestro autónomo escogeremos «Sólo domingo».

Pero a los autónomos también nos gusta celebrar las fiestas así que, además de los domingos, también incorporaremos la lista de festivos.

Bueno, sin ser ninguna maravilla, es mejor que ser esclavo. ¿Queda algo más? Pues sí. Algunos países han probado con semanas laborables de 4 días. ¿Cómo podemos calcular laborables si hacemos fiesta, por ejemplo, viernes, sábado y domingo? Pues utilizando la misma función DIAS.LAB.INTL pero cambiando el argumento fin_de_semana por una cadena de 0 y 1 dónde 0 es laborable y 1 es festivo. Para el ejemplo indicado, sería así:

Resulta que, además de tener fines de semana de 3 días, además hace los festivos. Cuando le incluimos el argumento, nos queda así:

¿Queda algo más? Bueno, el ni-ni. Ese que sólo dedica 2 días a la semana a trabajar. Concretamente los lunes y los miércoles:

Y finalmente tenemos el ni-ni extremo que, además de trabajar sólo lunes y miércoles, ¡hace los festivos!

Conclusiones

Las funciones de cálculo de días nos permiten realizar prácticamente cualquier cantidad de días entre fechas aplicando sus argumentos. Vemos que podemos trabajar con días naturales, días laborables estándar, días laborables distintos, incluir una lista de festivos y personalizar la semana laboral.

Incluso, con un poco de gracia, seriamos capaces de crear un calendario laboral anual de una persona dónde, para rizar el rizo, alternara semanas cortas y semanas largas.

Si te gustó el artículo, deja un comentario.

Categorías: Excel

0 comentarios

Deja una respuesta

Marcador de posición del avatar

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *