jueves, octubre 03, 2019

Fechas anteriores al 1900 - versión Power Query

Como todos sabemos según Excel la historia comenzó el 1 de enero de 1900,. Es decir, Excel nos permite hacer cálculos de fechas sólo a partir de esa fecha. Cualquier intento de ingresar en una celda o hacer cálculos con fechas anteriores resultará en un error.
Hace once años publiqué un post con los posibles remedios a operaciones con fechas anteriores al 01/01/1900. Estas soluciones implican usar macros, como este que ofrece Microsoft para calcular edades con fechas anteriores al 1900, o instalar complementos.
¿Qué sucede en Power Query cuando queremos hacer cálculos con fechas anteriores al 1900? Supongamos esta tabla con las fechas de nacimiento y fallecimiento de hombres y mujeres de ciencia

En Excel las fechas anteriores al 1900 son interpretadas como texto y las posteriores como fechas (las posteriores al 1900 están alineadas a la derecha, como números, mientras que las anteriores a la izquierda).

Nuestra tarea es calcular las edades a las que fallecieron nuestros científicos. Vamos a ver que sucede cuando creamos una conexión a esta tabla en Power Query



Por lo general, como en este caso, Power Query aplica el paso #"Tipo cambiado" en forma automática. En la columna [Nacimiento] todas las fechas son anteriores al 1900 por lo que ha sido definida como texto. El tipo de dato de la columna [Fallecimiento] es Cualquiera (Any); las fechas posteriores al 1900 aparecen como fechas y las restantes como texto.

Eliminamos el paso #"Tipo cambiado", seleccionamos las columna [Nacimiento] y [Fallecimiento] y cambiamos el tipo de dato a Fecha


¡Todas los valores son interpretados como fechas, también los anteriores al 1900!

Si a esta altura de los acontecimientos están pensando en cargar la consulta a una hoja de Excel y realizar allí el cálculo de la edad, pues tengo malas noticias para ustedes

Así que seguimos realizando el cálculo en el editor de Power Query.
Agregamos una columna personalizada para calcular la diferencia de días entre las dos fechas




e inmediatamente cambiamos el tipo de dato de la columna a Duración


Activamos el menú Transformar-Duración y elegimos la opción Total de años


con este resultado

Podemos redondear los resultados de [Edad] usando Transformar-Columna de número-Redondeo pero antes de cargar la consulta a una hoja de Excel debemos cambiar el tipo de dato de las columnas [Nacimiento] y [Fallecimiento] a texto

Podemos alinear las columnas de las fechas a la derecha si lo creemos necesario


1 comentario:

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