Traducir el blog
Cómo calcular la edad y el día de la semana antes de 1900
Esta entrada del blog es la segunda de la trilogía sobre el cálculo de fechas anteriores al año 1900 con funciones en VBA. La trilogía explica:
A) Cómo calcular fechas antes de 1900 en Excel y VBA
B) Cómo calcular la edad y el día de la semana antes de 1900
En esta entrada explicaré cómo calcular la edad y el día de la semana y a restar fechas anteriores al año 1900:
1) Formatos de celdas con fechas
2) Día de la semana en Excel y en VBA
3) Calcular diferencia de fechas en días
4) Calcular la edad en años
5) Plantilla con fechas Excel y VBA
1) Formatos de celdas con fechas
En las celdas de Excel se permiten fechas desde el 1 de enero de 1900 aunque, como ya sabemos por el primer artículo de esta trilogía, la primera fecha válida es el 1 de marzo de 1900.

La competencia se ha adelantado a Excel, pues permite fechas con números de serie negativos en sus celdas:
-
LibreOffice Calc permite fechas desde el día 15 de octubre de 1582, que es el primer día del Calendario Gregoriano.
-
Google Sheets permite las fechas del Calendario Gregoriano y desde el 1 de enero de -1, que deberían ser convertidas al Calendario Juliano.
Excel obliga a usar macros en VBA para poder tratar los números de serie negativos, como variables tipo Date en VBA, como se comentó en el primer artículo de esta trilogía, y es lo que vamos a hacer a continuación.
Para saber más sobre fechas en Excel puedes leer estos dos artículos en inglés:How to Work with Dates Before 1900 in Excel
How to calculate ages before 1/1/1900 in Excel
Pero lo mejor es seguir leyendo...
2) Día de la semana en Excel y en VBA
Ya sabemos todos que para obtener el nombre del día de la semana en Excel, a partir de una celda con una fecha, la fórmula apropiada es:
=TEXTO(fecha;"dddd")
Pero esta fórmula sólo funciona para fechas a partir del 1 de marzo de 1900.
En el archivo (a descargar en el apartado 5) he preparado un ejercicio con las fechas en Excel y VBA que me sirvió para ayudar a responder sobre este asunto en el foro de ayudaexcel.com:
Calcular el día de la semana en fechas anteriores a 1900Un usuario necesitaba saber el día de la semana (lunes, martes, miércoles...) de fechas anteriores a 1900, para lo que preparé un archivo con 3 macros en un módulo VBA.
La función ObtenerDíaSemanaISO() devuelve el día de la semana, si se le pasa una cadena de texto en formato ISO 8601, llamando a las funciones ObtenerNúmDíaSemanaISO() y ObtenerSerieFechaISO()
Es fácil convertir una string con una fecha en formato de texto al formato estándar ISO, lo que se puede ver en la hoja 'Fechas' del archivo que se puede descargar en el apartado 5) de esta entrada.
Si la fecha está en formato fecha, o en formato fecha sin convertir a ISO 8601, se deben usar las siguientes funciones:
Para obtener el número de serie de una fecha:
=ObtenerSerieFechaVBA($A2;ESNUMERO($A2))
Para obtener el día de la semana de una fecha:
=ObtenerDíaSemanaVBA($A2;ESNUMERO($A2))
Los cálculos están en la hoja 'Día Semana':
Como el año 1900 no fue bisiesto, devuelve error para el 29 de febrero.
3) Calcular diferencia de fechas en días
Para calcular la diferencia entre dos fechas en días se puede usar una función no documentada, herencia de Lotus 123, que se puede consultar en el siguiente enlace:
Calcular la diferencia entre dos fechas
La función SIFECHA, en inglés DATEDIF, permite calcular la diferencia en días, semanas, meses y años entre dos fechas. Por ejemplo, para calcular los días:
=SIFECHA("1-01-2014";"6-05-2016";"d")
El tercer argumento indica, con la letra "d", que la diferencia está expresada en días.
La forma más fácil de obtener los días es restar las fechas:
=ENTERO(Fecha1 - Fecha2)
De cualquiera de las maneras, si intentamos calcular los días para una o dos fechas anteriores al año 1900, nos dará error de valor: #¡VALOR! pues Excel no funciona con números de serie de fecha negativos.
Para años anteriores a 1900 se deben usar macros en VBA con la función:
= DateDiff("d", dtFecha1, dtFecha2)
Y eso se ha hecho en el archivo descargable, en el módulo "ModRestarFechas1900":
Function RestarFechas(sFecha1 As String, sFecha2 As String) As Long
que usa las funciones DateValue y DateDiff para calcular el número de días entre fechas desde el 1 de enero del año 100 hasta el 31 de diciembre de 9999, como se puede ver en la hoja 'Edad':
En color de fondo naranja, las fechas con dos cifras para el año, que se tranforma en los años 1930 y 1980. En color amarillo la fecha actual con la función: =HOY()
Si "Fecha Final" está vacía, toma esa fecha como la actual.
La columna con el cálculo de la Edad se explica en el siguiente apartado.
4) Calcular la edad en años
El cálculo de la edad en años se puede hacer con la siguiente fórmula para dos celdas de Excel:
=ENTERO(FRAC.AÑO(A1;B1))
Otra fórmula es usar el tercer argumento para años "y" de la función no documentada que ya conocemos:
=SIFECHA(A1;B1;"y")
Pero seguimos teniendo el problema de que las fechas en las celdas sólo sirven para números de serie positivos de fechas.
Para años anteriores a 1900 se deben usar macros en VBA con la función:
= DateDiff("yyyy", dtFecha1, dtFecha2)
Y eso se ha hecho en el archivo descargable, en el módulo "ModRestarFechas1900":
Function ObtenerEdad(sFechaNacimiento As String, sFechaCálculo As String) As Long
que usa las funciones DateValue y DateDiff para calcular el número de años entre fechas, desde el 1 de enero del año 100 hasta el 31 de diciembre de 9999, como se puede ver en la hoja 'Edad'.
Esta función me sirvió para ayudar en el foro de ayudaexcel.com:
Cómo restar dos fechas si alguna es anterior al año 1900
5) Plantilla con fechas Excel y VBA
Descarga la plantilla totalmente gratuita, con las macros visibles y las hojas protegidas sin contraseña, desde Google (con el botón "Excel Download") o desde el enlace a Microsoft OneDrive:
Fechas anteriores a 1900 PW1.xlsm
La voz del usuario de Excel
He votado y comentado la siguiente sugerencia "Dates prior to 1900" en Excel UserVoice para poder usar fechas con número de serie negativo en las celdas. La sugerencia lleva desde el 27 de septiembre de 2015. En 5 años Microsoft Excel no ha dicho ni pío, cuando la competencia de Google Sheets y LibreOffice Calc funcionan perfectamente con todo el Calendario Gregoriano.
¿Me ayudas a que esta sugerencia sea popular, votando también?
Actualización 2022-06-06: Esa página provoca el Error 404: Page Not Found.
Microsoft ha borrado intencionadamente UserVoice, y ha desaparecido todo el historial de sugerencias enviadas por los usuarios de Office, con lo que se han perdido todos los votos de los últimos años.
Desde hace 7 meses Microsoft ha creado un nuevo portal de Feedback (en inglés), donde compartir comentarios y ayudar a hacer mejoras y crear nuevos productos, con lo que he vuelto a escribir un comentario y votar por esta sugerencia:
Dealing with dates before 1900 · Community (microsoft.com)
Atento a la próxima entrada donde explicaré cómo hacer un calendario para meses anteriores al año 1900.
Mi lista de blogs
-
How to use XLOOKUP with two sheets? - Learn how to use Excel XLOOKUP function with two sheets in this step-by-step tutorial. Why you may want to use XLOOKUP with two sheets? If you have data ...Hace 13 horas
-
3 Ways To Print Column Headings in Microsoft Excel - Today, you’ll learn how to print column headings in Microsoft Excel on every sheet of paper you print. If you’ve ever printed an Excel spreadsheet only to ...Hace 6 días
-
Why use the walrus? - Continuing posts on new Python features, this one looks at the new walrus operator, which was introduced in Python 3.8. For a detailed description see Pyth...Hace 1 semana
-
Regresos 15 - Generaciones con cifras y potencias - En una entrada antigua de este blog se invitaba a buscar igualdades similares a la siguiente: 882+332=8833 En aquella ocasión se dio más protagonismo a ...Hace 1 semana
-
Todo lo que Debes Saber sobre Excel Moderno - La próxima vez que alguien te diga que Excel es solo una hoja de cálculo… por favor, mándale este video. […] The post Todo lo que Debes Saber sobre Excel...Hace 1 semana
-
Gráficos retro con colores difusos - 🔝*To translate this blog post to your language, select it in the top left Google box. * *¿A quien no le gustan los juegos retro, los juegos clásicos ...Hace 1 semana
-
UTILIZAR UNA COLECCIÓN PARA GENERAR CALENDARIO SEGÚN RANGO DE AÑOS Y FILTRAR POR MES - Hola a todos, Hoy volvemos a Power Apps y vamos a trabar en el uso de las colecciones para crear calendarios que nos pueden ser … La entrada UTILIZAR UN...Hace 1 semana
-
Compare List of Numbers With Excel RANK Function - Which student got the top score? If you have test results, or another list of numbers in Excel, you could sort them to see which scores are at the top. But...Hace 4 semanas
-
Ventajas y desafíos de la integración Excel y Power Platform - Excel y Power Platform Excel contabilidad y ticHace 1 mes
-
📒¿Trabajas con el prevalidador de la DIAN y quieres hacerlo más sencillo? - ¿Trabajas con el prevalidador de la DIAN y quieres hacerlo más sencillo? 🔍 ¡Este tutorial es para ti! Con la guía de Lili y Juan, aprenderás paso a paso c...Hace 1 mes
-
Cómo hacer gráficos en Excel - Excel es una de las herramientas más potentes y versátiles para el análisis y la presentación de datos. Los gráficos en Excel no solo ayudan a visualizar...Hace 3 meses
-
Fin - Llevo tiempo pensando esta entrada y no sé que decir. Analisis y Decisión nació en 2008 y no ... Leer más »Hace 4 meses
-
Análisis DAFO (FODA, DOFA) las decisiones con Excel - Para conocer la situación de una empresa, proyecto o persona, recurrimos al análisis DAFO (FODA, DOFA) en la toma de decisiones con Excel. El los años sese...Hace 7 meses
-
Color, Conditions, and Copilot: How to save time using conditional formatting with Copilot in Excel - Hi everyone, this is part 11 in a series of posts to show you some of the things that are possible to do with Copilot in Excel. *What is conditional f...Hace 7 meses
-
¿Quién ha abierto mi libro de Excel? - Basado en la opción de confirmación de lectura que tiene Microsoft Outlook, te presento una pequeña herramienta que te permitirá averiguar tanto el usuar...Hace 9 meses
-
How To Predict Bearing Life With Excel - When you work in mechanical engineering, understanding the reliability and performance of bearings under various conditions is crucial. Bearings are the co...Hace 9 meses
-
-
TikTok’s search evolution - 2 in 5 Americans use TikTok as a search engine. Nearly 1 in 10 Gen Zers are more likely to rely on TikTok than Google as a search engine. More than half of...Hace 1 año
-
Unblocking and Enabling Macros - When Windows detects that a file has come from a computer other than the one you're using, it marks the file as coming from the web, and blocks the file....Hace 2 años
-
Office Scripts: Trabajando con Tablas - [image: Office Scripts: Trabajando con Tablas] Me he dado cuenta que últimamente solo escribo de lenguaje M (es mi pequeño vicio)... pero hay que liberar l...Hace 2 años
-
Hello world! - [image: Hello world!] Welcome to WordPress. This is your first post. Edit or delete it, then start writing!Hace 2 años
-
La importancia de saber mecanografía en 2022 - [image: Resultado de imagen de mecanografía viñeta escribiendo a máquina] Según la RAE, la mecanografía es el arte de escribir a máquina. Hace unos cuantos...Hace 3 años
-
London Excel Meetup Workbooks - The workbooks used in my presentation on “Analytical and Interactive Dashboards in Excel” at the London Excel Meetup, September 3, 2020Hace 4 años
-
Cálculo de jornada que termina al día siguiente (Power Query) y despedida - [image: Cálculo de jornada que termina al día siguiente (Power Query) y despedida] Este blog se ha ocupado de cálculos de tiempo con bastante intensidad, c...Hace 5 años
-
Agenda Perpetua Excel Calendario Perpetuo - Saludos a los ingenieros y a todos los que forman parte de nuestra comunidad de planillas Excel para ingeniería civil, ya se vienen las fiestas navideñas y...Hace 5 años
-
International Keyboard Shortcut Day 2019 - The first Wednesday of every November is International Keyboard Shortcut Day. This Wednesday, people from all over the world will become far less efficient...Hace 5 años
-
Welcome, Prashanth! - Last March, I shared that we were starting to look for a new CEO for Stack Overflow. We were looking for that rare combination of someone who… Read more "W...Hace 5 años
-
Visualize parts and whole - combine clustered column and stacked column charts - *Inga: Disa what?* *Igor: -ppeared.* by The FrankensTeam ------------------------------ Really it was 3 years ago we posted our last article? *Freddy: Th...Hace 6 años
-
Salvador Sostres, analfabeto profesional - Los nuevos tiempos traen nuevas profesiones. Internet, además, ha revolucionado el mundo del periodismo y la palabra escrita. Adaptarse o morir, ese es el ...Hace 7 años
-
Planificación de compras - Realizar una lista con los productos que necesitamos y que formarán parte de nuestra cesta de la compra nos ayuda a *encontrar la combinación de bienes p...Hace 12 años
-
-
-
-
-
-
-
-
-
No Response to "Cómo calcular la edad y el día de la semana antes de 1900"
Leave A Reply
Comenta este artículo, critícalo o avisa si detectas algún error que haya que corregir.