lunes, 7 de marzo de 2011

La función DIA.LAB en Excel.

Ha llegado recientemente a mi mail una consulta que me hizo recordar una de las funciones 'temporales' de poca utilización, hablo de la función =DIA.LAB(fecha; días_laborables; días festivos).
La consulta recibida fue:

...suponiendo que lo resaltado en verde corresponde a la fecha y dia actual aplicando las formulas resaltadas en el mismo color, pretendo que al día actual me reste uno( resultado en amarillo) y que cuando el dia de la semana actual sea lunes me muestre la fecha del viernes anterior...



Recordaremos que existe esta función DIAS.LAB que nos devuelve una Fecha a contar desde la fecha dada, contando hacia adelante o hacia atrás, pero sólo días laborables. Esto es, excluyendo fines de semana y cualquier fecha definida en el tercer argumento.
Por centrar conceptos, entenderemos:
  • Fecha: es una fecha que representa la fecha inicial, es decir, desde comenzamos a contar.

  • días_laborables: es el número de días laborables (no fines de semana ni festivos definidos en el siguiente argumento) anteriores o posteriores al argumento 'fecha'. Un valor positivo para el argumento días_laborables devuelve una fecha futura, mietras que un número negativo produce una fecha pasada o anterior.

  • festivos: es opcional; serán una o varias fechas para excluirse del calendario laboral, como los días festivos nacionales y locales.

Es importante recordar que cuando trabajamos con fechas, en ocasiones para evitar errores, conviene emplear la función FECHA(año; mes; día).

Respondiendo a nuestro lector, y suponiendo nuestra fecha de trabajo situada en la celda B1, escribiríamos en C1:
=SI(DIASEM($B$1;2)=1;DIA.LAB($B$1;-1);B1-1)
observamos como con un condicional SI determinamos qué queremos obtener cuando el día a evaluar sea 'Lunes', lo que conseguimos con la prueba lógica:
DIASEM($B$1;2)=1
si se cumple la condición exigida, nuestro condicional SI ejecutará la función:
DIA.LAB($B$1;-1)
que devuelve un día laborable anterior a la fecha de estudio, ya que el segundo argumento es negativo; con lo que respondemos a la condición dada por el usuario ([...que cuando el dia de la semana actual sea lunes me muestre la fecha del viernes anterior...]); para el resto de días de la semana, simplemente obtendremos un día menos del analizado.

Por ejemplo, para el día de hoy lunes, 07/03/2011 obtendríamos la fecha 04/03/2011 viernes.

No hay comentarios:

Publicar un comentario en la entrada