martes, 6 de septiembre de 2011

La famosa-desconocida Función SIFECHA()

Aún cuando lo busques en el asistente de funciones, no lo encontraras. De hecho, si escribimos la función en alguna de la celdas, no aparecerán los argumentos necesarios para la función. Es una de las funciones escondidas del Excel: SIFECHA()

Quizás muchas veces ha tratado de calcular la edad de alguna persona, dada la fecha de nacimiento y la fecha actual. Sin embargo, el cálculo no es trivial (restar el año de la fecha de nacimiento al año de hoy), ya que se debe tomar en cuenta criterios como si el mes y día de la fecha de hoy, es mayor o igual a la fecha de nacimiento. En base a esto, nacen algoritmos que han tratado de solucionar este problema. Tal algoritmo se pone tedioso y genera que se tenga que escribir una fórmula en Excel algo ineficiente (en el aspecto de funciones utilizadas).

Quizás utilizaron una función en excel de este estilo para realizar el cálculo de la edad:

=AÑO(HOY())-AÑO(fecha_nac)-SI(MES(HOY())>=MES(fecha_nac);SI(DIA(HOY())>=DIA(fecha_nac);0;1);1)

¿Engorroso no? Y para qué hablar del cálculo de meses...¡Es más engorroso aún!. Sin embargo, para gracia de nuestras vidas, este problema ya está simplificado, ya que existe una formula que nos realiza todo este cálculo con tan sólo entregando tres argumentos.

¿Qué es?
La fórmula SIFECHA() es una fórmula que nos ayuda a obtener la diferencia entre dos fechas, expresados en meses, días y años según lo que nosotros queramos. Puedes revisar el algoritmo aquí.

Recordemos que Excel trata las fechas como series de números, donde la fecha 1 de Enero de 1990 es igual a 1, el 2 es el 2 de Enero de 1990 y así sucesivamente. Es decir, el número representa la cantidad de días que han pasado desde el 0 de Enero de 1990.

Nota: esto es para el sistema operativo de Windows. En el caso de OSX, la fecha inicial es diferente.

Por lo tanto, para MS Excel, las fechas son simplemente series números. De esta manera, MSE (Microsoft Excel) puede realizar operaciones matemáticas para obtener datos como dias, meses, años y horas transcurridos entre dos fechas.

¿Cómo se usa?
Es importante tener en cuenta que en sí, la función SIFECHA() no es una función de MSE propiamente tal, es por eso que no aparecerá dentro de la ayuda de Excel. Sin embargo, aquí te daremos cuáles son los atributos que se necesitan para que la fórmula nos retorne lo que buscamos:

=SIFECHA( fecha_inicial; fecha_final; "parámetro")

Donde "parámetro" es un texto que indica la unidad en que queremos la diferencia entre fecha_incial y fecha_final. He aquí una tabla que muestra los valores que acepta este argumento (deben ir las comillas):

UnidadDevuelve
"Y"El número de años completos del período.
"M"El número de meses completos del período.
"D"El número de días del período.
"MD"La diferencia entre los días de fecha_inicial y fecha_final. Los meses y los años de las fechas se omiten.
"YM"La diferencia entre los meses de fecha_inicial y fecha_final. Los días y los años de las fechas se omiten.
"YD"Los días de diferencia entre fecha_inicial y fecha_final. Los años de las fechas se omiten.


Aplicado a un ejemplo:













¡Así es que ya sabes! Ya no tienes que utilizar la larga función que vimos en un principio. Aprovecha de esta famosa desconocida función SIFECHA() (que de por cierto, ni si quiera MSE la conoce, por eso no te puede ayudar).

Fuentes Utilizadas:

6 comentarios:

  1. Curiosamente a mi jamás me ha resultado el resultado en años con la letra "A", a pesar de mi Office está en español. Siempre he tenido que usar "Y" (de year).

    ResponderEliminar
  2. Notable función, ¿También sirve para Office 2003? , o fue un parche para 2007?

    Saludos

    ResponderEliminar
  3. Jejej sí scisterna, es una de las curiosidades. Creo que debe ser por el hecho de que no es una función de Excel propiamente tal. Pero bueno, ya casi todo se está haciendo en inglés.

    ResponderEliminar
  4. No sé si alguien más tenía este problema, pero la función para Office en inglés es DATEDIF. Todo lo demás se mantiene igual.

    ResponderEliminar