🔝To translate this blog post to your language, select it in the top left Google box.
Me he propuesto el reto de hacer en Excel un calendario internacional con una única fórmula, en el que la semana pueda comenzar en lunes o en domingo, y los días y meses estén escritos en el idioma de Excel.
En esta imagen animada se ve en español y en inglés americano:
Cuando vi este vídeo, que reproduzco aquí con permiso de su autor, me puse a pensar: Por qué no hacer un calendario con una única fórmula, pero que sea lo más general posible.
Y llegué a la conclusión que se podía hacer un calendario más internacional, aunque la fórmula se complique un poco.
La fórmula original es de Albert Cid, MVP en MS365 Apps & Services y autor del canal de YouTube: Hablando de Excel
Durante la grabación del vídeo Albert cometió un pequeño desliz, al restar 1 en vez de sumar 1 antes de los 3 paréntesis del final, por lo que los meses del calendario son incorrectos, aunque no le quita mérito a la fórmula, pues en un comentario del vídeo él mismo escribió la fórmula correcta.
Si no tienes las versiones más recientes de Excel (Excel 2021 o Excel para Microsoft 365), o si no quieres descargar el calendario al final de este artículo, aún puedes probar mi nuevo Calendario con una única fórmula aquí, en la nube de Microsoft OneDrive con Excel para la Web, en el que lo más interesante es poder elegir cuando comienza la semana en la celda D11, lo que hace internacional este calendario:
Para ajustar el zoom en la nube:
- En el móvil o celular usa dos dedos en la pantalla, como haces para ampliar o reducir una foto.
- En el PC sitúa el cursor dentro del buscador y presiona la tecla <Control> girando la ruleta del ratón.
AVISO: En la nube no se guardan los cambios que hagas.
El calendario tendrá las siguientes características:
- Hecho en Excel con una única fórmula.
- Años desde 1900 hasta 9999.
- Meses independientes del idioma de Excel.
- La semana comienza en lunes (estilo europeo) o en domingo (estilo americano).
- Los nombres de los 7 días de la semana cambian dinámicamente: de Lunes a Domingo o de Domingo a Lunes.
- Formato condicional sin fórmulas para marcar en rojo los domingos.
- Opcional: Formato condicional con una segunda fórmula para resaltar el día de hoy en color de fondo amarillo.
ATENCIÓN: Lo más interesante es que es un calendario internacional, pues se puede elegir si la semana comienza en domingo o en lunes. Además los meses y días de la semana se muestran en el idioma de Excel, sea español, inglés u otro idioma.
Por ejemplo, con Excel en inglés y las semanas comenzando en domingo será así:
La única fórmula de la hoja está en la celda B3 y genera el calendario en el rango B3:H9.
En la imagen animada se ven las principales características de este calendario.
Antes de copiar la fórmula única en la celda B3 hay que definir lo siguiente en este orden:
- TablaMeses: Tabla en el rango B14:B26, con los 12 meses, siendo fechas con formato personalizado: mmmm, para mostrar los nombres de los meses.
- TablaComienzoSemana: Tabla en el rango C14:C16, con un lunes y un domingo, siendo fechas con formato personalizado: dddd, para mostrar los nombres de los días de la semana.
- miSemanaPrimerDía: nombre definido de la celda C15 que es un lunes.
- miAño: nombre definido de la celda H2 donde elegir el año con un desplegable de 1900 a 9999.
- miMes: nombre definido de la celda agrupada B2:C2 donde elegir el mes con un desplegable mediante validación de datos del tipo Lista con los meses de la tabla TablaMeses.
- miSemanaComienza: nombre definido de la celda D11 donde elegir si la semana comienza en domingo o en lunes con un desplegable mediante validación de datos del tipo Lista con las dos fechas de la tabla TablaComienzoSemana.
Esos nombres se definen en el Administrador de nombres así:
La única fórmula que hace falta para hacer este calendario es:
Con las nuevas funciones de Excel, como LET y LAMBDA, hay que acostumbrarse a indentarlas para hacerlas más legibles, con líneas separadas (presionar las dos teclas: Alt + Intro) para cada conjunto de nombre y su valor y para las funciones que realizan el cálculo.
La fórmula única que genera el calendario usa la función LET explicada aquí, con la siguiente sintaxis:
El primer nombre1, el primer valor1 y el cálculo son obligatorios, son opcionales el resto: [nombrei, valori].
En la fórmula única hay 5 nombres y sus valores, y el resto es una fórmula con el cálculo. El cálculo genera una matriz de 7 filas x 7 columnas, una columna por cada día de la semana. La primera fila es el nombre de los días de la semana, el resto de filas son los días del mes elegido.
Nombres de la función LET:
- año: con valor del nombre definido: miAño
- mes: con el número del mes definido: miMes
- fecha: con el primer día del mes y año elegidos.
- diasemana: con el día de la semana de la fecha:
- 1 (lunes) al 7 (domingo) si la semana comienza en lunes.
- 1 (domingo) al 7 (sábado) si la semana comienza en domingo.
- fechas: es una matriz de 7x7 valores calculados con:
- fecha - díasemana - 6
- cálculo: con las siguientes condiciones:
- Las fechas de la primera fila como nombres de días de la semana.
- Solamente se ven las fechas del mes elegido.
- Si la semana comienza en lunes las fechas son con formato fecha de Excel.
- Si la semana comienza en domingo las fechas son números negativos de días del 1 al 31, con el número máximo dependiente del mes elegido.
Estas dos últimas condiciones permiten distinguir si los domingos están en la primera o en la séptima columna de la matriz de fechas, con lo que se puede aplicar un formato condicional para números negativos o positivos, según en qué día comienza la semana, si en domingo o en lunes...
Si se quiere resaltar el día de hoy en el calendario hay que añadir un formato condicional con esta fórmula:
En el siguiente vídeo explico cómo añadir este formato condicional opcional y los otros tres obligatorios, que permiten marcar en rojo los domingos.
En el vídeo explico paso a paso cómo crear un Calendario con una única fórmula y cómo programar y probar la nueva función LET, que aún no conocen muchos usuarios de Excel ¡con lo potente que es!
Este calendario es compatible con las versiones más recientes de Excel: Excel 2021, Excel para Microsoft 365 y Excel para la Web.
Descarga la versión 4.0 desde uno de estos enlaces:
- Microsoft OneDrive: Calendario con una fórmula - PW4.xlsx
- Sites Google Drive: Calendario con una fórmula - PW4.xlsx
Abre el archivo y presiona el botón: Habilitar edición cuando aparezca el aviso de VISTA PROTEGIDA.
La hoja está protegida sin contraseña, por lo que puedes estudiar y analizar la fórmula única.
ATENCIÓN: Se puede modificar este libro de Excel respetando esta licencia:
Creative Commons — Atribución-NoComercial-CompartirIgual-No portada — CC BY-NC-SA 4.0
Si estás interesado en cómo se gestó este calendario, puedes seguir la
conversación del siguiente enlace:
El tema fue creado por Macro Antonio a partir del vídeo de Albert Cid, en los que me he basado para hacer mi calendario internacional con una única fórmula.