sábado, abril 09, 2011

Las nuevas funciones DIA.LAB y DIAS.LAB en Excel 2010

Esta última semana se ha caracterizado por una intensa actividad, tratando de terminar a tiempo algunos proyectos. La semana entrante no pinta mejor, por lo que no me queda más que pedir paciencia a todos los que me han consultado por mail en los últimos días. Poco a poco iré poniéndome al día.

Mientras tanto, una entrada “al paso”. Hace poco menos de dos años atrás publiqué dos entradas mostrando alternativas a las funciones DIA.LAB y DIAS.LAB de Excel. El problema con estas funciones consistía en que tenían pre-programado el fin de semana con los días sábado y domingo.

Quien haya instalado Excel 2010 puede olvidarse de las soluciones que proponía en esas notas y usar las nuevas funciones DIA.LAB.INTL y DIAS.LAB.INTL

Estas funciones cuentan con un argumento opcional “fin de semana”

DIA.LAB.INTL(fecha_inicial; días_lab; [fin_de_semana]; [festivos])

DIAS.LAB.INTL(fecha_inicial; fecha_final; [fin_de_semana]; [festivos])

Este argumento nos permite establecer cuáles son el o los días a tomar en cuenta como fin de semana. Lo interesante es que este argumento tiene dos sintaxis alternativas:

1 – Podemos usar un valor de esta tabla de valores (ver la ayuda en línea de Excel)



2 – usar una combinación de siete ceros y unos. La posición de cada cifra en la cadena representa el día de la semana, empezando por el lunes. Usamos el 1 para representar los días no laborables y 0 para los laborales. Así, por ejemplo, si el fin de semana es viernes-sábado, la cadena será “0000110”; si el fin de semana es domingo-lunes la cadena será “1000001”; y si alguien conoce el país donde el fin de semana es “1111111”, por favor me avisa donde queda el consulado o la oficina de inmigraciones….

13 comentarios:

  1. Como siempre excelente, muchas gracias por compartir tus conocimientos.
    Saludos y Bendiciones.

    Edwin Reyes

    ResponderBorrar
  2. Si no fuera por tu blog, quien sabe cuando me hubiera enterado de esta nueva función. Gracias!

    ResponderBorrar
  3. excelente para el calculo de turnos laborales en que los días "no hábiles" no son siempre los mismos e incluso no consecutivos,entonces se define el parametro fin de semana como "0000000" y los dias no hábiles se especifican en una lista como días festivos.
    como siempre, gracias por compartir.

    ResponderBorrar
  4. buenas, tengo 2007, que debo de hacer los mismo que hace esta función pero en mi excel. gracias

    ResponderBorrar
  5. Fijate en las notas de los enlaces que aparecen en el segundo parágrafo de esta nota.

    ResponderBorrar
  6. Hola Jorge!

    Tengo una tabla y en una de las columnas pongo las FECHAS (ejemplo: 11/07/12) y necesitaria otra columna en la que me dijera automaticamente que dia de la semana es esa fecha (Lunes, Martes, Miercoles... ).

    Como lo puedo hacer?

    Muchas gracias!!

    ResponderBorrar
  7. Combinando las funciones DIASEM y ELEGIR.
    DIASEM da como resultado un número entre 1 y 7 que identifica el día de la semana. Para transformarlo en el nombre del día usamos ELEGIR de esta manera:

    =ELEGIR(DIASEM(A1),"lunes","martes","miércoles",...)

    ResponderBorrar
  8. Fantactico! Muchas Gracias!

    ResponderBorrar
  9. Hola, Jorge, felicitaciones por el blog. Una consulta, que seguro que tú me lo explicas mejor que nadie:

    Si tenemos (excel 2007):

    A1: 14/01/2013
    A2: 30

    A3: DIA.LAB(A1;A2)= 25/02/2013

    Pero en cambio:

    DIAS.LAB(A1;A3) = 31

    O SIFECHA(01/01/2012;31/12/2012;"d") = 365

    ¿Si se quiere incluir el día en el intervalo, SIEMPRE hay que sumarle uno, o hay alguna fórmula que lo incluya por defecto?

    Mil gracias.

    ResponderBorrar
  10. Javi,si, hay que sumarle 1. No es diferente de la suma o resta de números (las fechas en Excel son números enteros expresados con formato de fecha).
    Así 1 + 7 = 8; pero si incluimos el 1 en la cuenta el resultado debería ser 7. Es la diferencia entre sumar y enumerar.

    ResponderBorrar
  11. Gracias, Jorge, tan claro como siempre.

    ResponderBorrar
  12. Saludos, excelente tu blog y agradecido por compartir tus conocimientos, deseo saber los 5 días hábiles de una fecha final, es decir, como fecha final tengo "24/03/2016" quiero saber la fecha con 5 días hábiles menos tomando en cuenta que no debo contar "24/03/2016" aunque sea día hábil y que la fecha con los días hábiles menos sea esta "16/03/2016", gracias de antemano!

    ResponderBorrar
  13. Hola Hugo,

    sería =DIA.LAB(A1,-6), donde A1 contiene la fecha 24/03/2016,
    De la misma manera se puede usar DIA.LAB.INTL si los fines de semana no son sábado-domingo.

    ResponderBorrar

Nota: sólo los miembros de este blog pueden publicar comentarios.