Mostrando las entradas con la etiqueta SIFECHA. Mostrar todas las entradas
Mostrando las entradas con la etiqueta SIFECHA. Mostrar todas las entradas

miércoles, abril 16, 2014

La función SIFECHA (DATEDIF) con varios períodos

Ya hemos hablado en el pasado sobre la función SIFECHA (DATEDIF en inglés) y sus bondades. A pesar de su utilidad esta función sólo está documentada en la versión 2000 de Excel. Por algún motivo Microsoft decidió "pasarla a la clandestinidad", aunque está disponible en todas las versiones posteriores de Excel.
Un lector me consultaba sobre cómo usarla para calcular la antigüedad de un empleado que se ha reincorporado a la empresa en varias oportunidades.

Veamos este ejemplo

Las columnas B y C muestran la fecha de comienzo y final de cada período; las columnas D, E y F contienen estas fórmulas:
  • =SIFECHA(B2,C2,"y"), para calcular los años
  • =SIFECHA(B2,C2,"ym"), para calcular el resto de los meses
  • =SIFECHA(B2,C2,"md"), par calcular el resto de los días.

Nótese que el argumento "y" indica que se calculan los años, pero dependiendo de las definiciones regionales del sistema, debe usarse "a" en su lugar.

La tabla muestra que nuestro empleado ha trabajado al presente 10 años, 21 meses y 55 días. Por suspuesto, la forma de presentar este cálculo debe ser 11 años, 10 meses y 25 días. Podemos corregir la fila 5 manualmente ("pasamos" 12 meses a los años quedando 11 años y 9 meses; pasamos 30 días a los meses quedando 10 meses y 25 días), pero más práctico es usar SIFECHA de la siguiente manera:

Las fórmulas con SIFECHA aquí son:

  • =SIFECHA(B2+B3+B4,C2+C3+C4,"y")
  • =SIFECHA(B2+B3+B4,C2+C3+C4,"ym")
  • =SIFECHA(B2+B3+B4,C2+C3+C4,"md")

Dado que Excel maneja las fechas como números enteros de una serie, podemos sumar las fechas de comienzo como "fecha inicial" y de la misma manera sumar las fechas de finalización como argumentos de la función.

Si necesitamos expresar el resultado en un único número, a los efectos de realizar algún cálculo, podemos usar esta fórmula que dará una buena aproximación:

La parte decimal del resultado expresa los meses y días por encima de los 11 años. Podemos interpretar este número de la siguiente manera:


donde las fórmulas utilizadas son





domingo, marzo 17, 2013

Cálculo de días en base a meses de 30 días

Uno de los usos más difundidos de Excel es el cálculo del número de días entre dos fechas. Excel permite hacerlo de diversas maneras, con una simple resta (fecha final – fecha inicial) o usando funciones como DIAS.LAB o DIA.LAB y las nuevas funciones de fechas (Excel 2010) DIAS.LAB.INTL y DIA.LAB.INTL.

Todos los cálculos de fechas en Excel toman en cuenta la duración de cada mes en particular, incluidos los años bisiestos.

Pero sucede que hay ocasiones en las cuales necesitamos hacer el cálculo de días entre dos fechas basándonos en meses de 30 días (año de 360 días). Debo confesar que en la práctica no me ha tocado hacer cálculos de ese tipo, pero si a uno de mis lectores que debía hacer cálculos para pagar aguinaldos.

La forma más sencilla e inmediata de hacerlo es usando la función DIAS360. Esta función tiene dos argumentos obligatorios y una opcional:


  • Fecha inicial
  • Fecha final
  • Método: según la ayuda en línea de Excel
  • FALSO u omitido Método de EE.UU. (NASD). Si la fecha inicial es el último día del mes, se convierte en el día 30 del mismo mes. Si la fecha final es el último día del mes y la fecha inicial es anterior al día 30, la fecha final se convierte en el día 1 del mes siguiente; de lo contrario la fecha final se convierte en el día 30 del mismo mes.
  • VERDADERO Método europeo. Las fechas iniciales o finales que corresponden al día 31 del mes se convierten en el día 30 del mismo mes.


Ejemplo del uso



Sumamos 1 a la función para incluir en la cuenta tanto la fecha de inicio como la del final.

Otra forma de hacer el cálculo, si nos gusta la vida complicada, es usar la "indocumentada" función SIFECHA.

Esta fórmula dará el mismo resultado

=SIFECHA(A2;B2;"m")*30+SIFECHA(A2;B2;"md")+1



La expresión SIFECHA(A2;B2;"m") da como resulta 2, el número de meses entre las dos fechas (por eso usamos el argumento "m" en la función). Al multiplicar por 30 obtenemos el número de días en base a meses de 30 días.

La expresión SIFECHA(A2;B2;"md") da el número "extra" de días por encima del número de meses calculado. En nuestro caso dará 10 por lo que, como en el caso anterior, sumamos 1 a nuestra fórmula.

miércoles, octubre 19, 2011

Cálculo de semanas en Excel

Excel no tiene una función que calcule la cantidad de semanas entre dos fechas. Para calcular la cantidad de años, meses y días podemos usar la “indocumentada” función SIFECHA.

En esa nota muestro cómo calcular también la cantidad de semanas, pero dado que sigo recibiendo consultas sobre el tema mostraré aquí la técnica en forma sucinta. A quien no esté familiarizado con SIFECHA le recomiendo leer la nota mencionada.

Supongamos que queremos calcular la cantidad de meses, semanas y días entre dos fechas



En la celda B4 usamos la fórmula

=SIFECHA(comienzo,fin,"ym")

donde “comienzo” es un nombre que se refiere a la celda B1 y “final” es un nombre que se refiere a la celda B2.

(aclaración: dependiendo de las definiciones del sistema hay que usar “a” en lugar de “y” para los años)

En B5 ponemos =SIFECHA(comienzo,fin,"md")

Finalmente en B8 usamos =B4&" meses y "&B5&" días"

Excel no incluye el día de comienzo cuando calcula el intervalo, de manera que quien quiera incluirlo en el resultado deberá agregar “+1” a la fórmula.

Nosotros queremos este cálculo



En la celda B5 (semanas) ponemos

=ENTERO(SIFECHA(comienzo,fin,"md")/7)

para calcular la cantidad de semanas de los días no incluidos en la cuenta de los meses.

En la celda B6 ponemos

=SIFECHA(comienzo,fin,"md")-(B5*7)

Es decir, descontamos del total de días calculado por SIFECHA la cantidad de días de las semanas en la celda B5.

Si queremos una fórmula que no dependa del B5 tendríamos que usar

=SIFECHA(comienzo,fin,"md")-(ENTERO(SIFECHA(comienzo,fin,"md")/7)*7)

La fórmula en B9 es

=B4&" meses, "&B5&" semanas y "&B6&" días"