🔝To translate this blog post to your language, select it in the top left Google box.
Cómo crear un calendario con una tabla dinámica
En este blog he publicado bastantes calendarios que se pueden ver en el siguiente enlace:
He buscado en la Web algún calendario basado en tablas dinámicas y no he encontrado casi nada. El calendario más parecido que he visto ha sido el del siguiente enlace, pero necesita demasiados campos en la tabla de origen de datos para generar la tabla dinámica.
Me he propuesto hacerlo con sólo 3 campos como origen de datos y que sea la tabla dinámica la que elabore el calendario, siendo éste el aspecto del nuevo calendario dinámico:
Con dos segmentaciones de datos, una para los años y otra para los meses, se puede configurar dinámicamente el calendario perpetuo, abarcando los siglos XX y XXI del calendario gregoriano.
En este vídeo puedes seguir paso a paso las explicaciones de cómo crear el calendario dinámico:
Aumenta el volumen para escuchar las explicaciones, pues la grabación de audio está a un nivel muy bajo. Disculpa las molestias. Para ayudar a seguir la explicación paso a paso he usado un cuadro de texto que muestra cada uno de los pasos, lo que espero sirva de ayuda para que puedas reproducir las explicaciones y consigas hacer tú mismo el calendario con una tabla dinámica, que es lo que pretendo con este artículo y el vídeo que le acompaña.
Paso a paso de cómo crear el calendario
En una hoja llamada 'Fechas' se crea una tabla con 3 columnas: Fecha; Día
Semana; Núm. Semana.
Hay que rellenar la columna de Fecha con una secuencia desde el 01-01-1901, día de comienzo del siglo XX. El año 1900 es bisiesto erróneamente en Excel, por lo que no será incluido en el calendario.
Una forma elegante de rellenar las fechas es usando la función:
=SECUENCIA("01-01-2101"-"01-01-1901";1;"01-01-1901")
ATENCIÓN: Esta función sólo sirve en las últimas versiones de Excel 365; Web; iPad; iPhone y Android.
Por compatibilidad con versiones desde Excel 2010, es mejor introducir el primer día en la celda A2 y los sucesivos calcularlos con la fórmula: =A2+1
Se trata de rellenar todas las fechas de los siglos XX y XXI.
Son un total de 73.049 días obtenidos con la fórmula: ="01-01-2101"-"01-01-1901"
ATENCIÓN: En una hoja la máxima fecha sería el 24-11-4770: =FILA(A1048576)-1
Esta tabla de fechas será el origen de datos de la tabla dinámica que se
creará en la hoja 'Calendario'.
Descarga esta plantilla vacía con los pasos a seguir desde Google (con el botón "Excel Download") o desde el enlace a Microsoft OneDrive.
Activa las macros y haz clic en la caja de texto.
Calendario Dinámico PW0.xlsm
Pasos a seguir ya explicados en el vídeo
- Comienza en una nueva hoja, cambiando su nombre a: Fechas
- Ponla en color amarillo.
- Edita la tabla de fechas:
- En A1 escribe la cabecera: Fecha; Día Semana; Núm. Semana
- En A2 pon el día 01-01-1901
- En A3 escribe la fórmula: =A2+1
- En el menú Vista: Desmarca la Línea de cuadrícula
- Inmoviliza la fila superior
- Inserta la tabla con cabecera: Edita su nombre: TablaFechas
- Cambia su tamaño a: 73050 filas
- Cambia su formato a: Fecha corta
- ATENCIÓN: Comprueba que se ha rellenado hasta el último día: 31-12-2100
- Calcula el día de la semana en B2: =DIASEM([@Fecha];2)
- NOTA: El segundo argumento indica con un 2 que la semana comienza en lunes (1) y acaba en domingo (7).
- Calcula el número de semana en C2: =NUM.DE.SEMANA([@Fecha];2)
- NOTA: El segundo argumento indica con un 2 que la semana comienza en lunes.
- Copia las celdas B2 y C2 hacia abajo con autorrelleno.
- Centra y ajusta las columnas.
- Copia las fórmulas dinámicas de la tabla como valores estáticos.
- NOTA: Este paso es recomendable si no va a crecer esta tabla, ya que mejora su rendimiento al no tener que recalcularla.
- Inserta la tabla dinámica en una nueva hoja a partir de esta tabla.
- Cambia el nombre de la hoja a: Calendario
- Ponla en color azul.
- Selecciona todas las celdas (arriba a la izquierda de las filas y columnas)
- Selecciona menú de Inicio: Alineación
- Centrar y Alinear en el medio
- Selecciona "Fecha" como: Etiqueta de fila
- Agrupa las fechas por: Meses y Años.
- Selecciona "Núm. Semana" como: Etiqueta de fila
- Selecciona "Día Semana" como: Etiqueta de columna
- Selecciona "Fecha" como: Resumen de Valores
- En Valores: Cuenta de Fecha Cambia la Configuración de campo de valor…
- Resume el campo de valor por: Máx.
- ATENCIÓN: Este es el truco principal de este calendario.
- Valores como: Máx. de Fecha
- ¡¡¡ Y se ven los números de serie de las fechas en Excel !!!
- En el menú Vista: Desmarca la Línea de cuadrícula
- Selecciona la fila 4: Inmoviliza paneles
- En Herramientas de tabla dinámica: Diseño
- Totales generales: Desactivar para filas y columnas
- ¡Ya tenemos el esqueleto del calendario montado con una tabla dinámica!
- Cambia los nombres de las etiquetas:
- B2: Máx. de Fecha por: Calendario
- B3: Etiquetas de fila por: Año / Mes / Semana
- C2: Etiquetas de columna por: Día
- C3 a I3: Cambia 1 por lun; … ; 7 por dom
- Selecciona la celda B4 (1901):
- Haz clic con el botón derecho del ratón y aparece el menú contextual.
- Desmarca: Subtotal "Años"
- Selecciona la celda B5 (ene):
- Haz clic con el botón derecho del ratón y aparece el menú contextual.
- Desmarca: Subtotal "Fecha"
- Selecciona la celda D6 con el primer día del calendario:
- Haz clic con el botón derecho del ratón y aparece el menú contextual.
- Selecciona: Configuración de campo…
- Haz clic en el botón de abajo a la izquierda: Formato de número
- Selecciona Categoría: Personalizada
- Cambia el Tipo: Estándar por la letra: d
- ¡Perfecto! ¡Has conseguido que los valores de fechas se muestren como los días del mes!
- Vamos a conseguir que el calendario sea dinámico.
- En Herramientas de tabla dinámica: Opciones
- Inserta Segmentación de datos
- Marca: Años y Fecha
- Selecciona la segmentación de datos: Fecha
- En Herramientas de Segmentación de datos: Opciones
- Cambia el Título de Fecha por: Meses
- Cambia el número de columnas a 12
- Sitúa esta segmentación arriba
- Amplia su anchura hasta que se vean los nombres de los meses.
- En Herramientas de tabla dinámica: Opciones
- Desmarca: Botones +/-
- Selecciona una celda de la tabla dinámica:
- Haz clic con el botón derecho del ratón y aparece el menú contextual.
- Selecciona: Opciones de tabla dinámica
- Desmarca: Autoajustar anchos de columna al actualizar
- Selecciona el rango de columnas C:I
- Haz clic con el botón derecho del ratón para mostrar el menú contextual
- Selecciona: Ancho de columna…
- Pon un valor de: 8
- En Herramientas de tabla dinámica: Diseño
- Selecciona un estilo a tu gusto…
- BONUS: Aplicar formato condicional a los días de entresemana:
- Selecciona el rango de celdas: =$C$4:$I$15094
- En el menú Inicio: Formato condicional
- Haz clic en: Nueva regla
- Utiliza la fórmula: =DIASEM(C4;2) 6
- Formato: Color azul claro
- Haz clic en el botón: Aceptar
- BONUS: Aplicar formato condicional a los sábados y domingos (findes):
- Selecciona el rango de celdas: =$C$4:$I$15094
- En el menú Inicio: Formato condicional
- Haz clic en: Nueva regla
- Utiliza la fórmula: =Y(DIASEM(C4;2)>5;C4<>"")
- Formato: Color rojo claro
- Haz clic en el botón: Aceptar"
- EXTRAS: Aplicar formato condicional al día de hoy:
- Selecciona el rango de celdas: =$C$4:$I$15094
- En el menú Inicio: Formato condicional
- Haz clic en: Nueva regla
- Utiliza la fórmula: =C4=HOY()
- Formato: Color amarillo
- Haz clic en el botón: Aceptar
- Selecciona la celda B5 (ene):
- Haz clic con el botón derecho del ratón y aparece el menú contextual.
- Selecciona: Configuración de campo...
- Selecciona la pestaña: Diseño e impresión
- Marca: Insertar línea en blanco después de cada etiqueta de elemento
- Con las segmentaciones de datos:
- Selecciona el año: 2020
- Selecciona 3 meses: de oct a dic
- ATENCIÓN: Cómo reducir el tamaño del libro:
- Selecciona la fila 27.
- Mantén pulsada la tecla: Mayúsculas
- Presiona una vez la tecla: Fin
- Presiona una vez la tecla de cursor: Flecha hacia abajo
- Haz clic en cualquier fila con el botón derecho del ratón
- Haz clic en: Eliminar
- IMPORTANTE: Guarda el libro inmediatamente.
- IMPORTANTE: Elimina la hoja Fechas si no vas a ampliar el calendario a más siglos que el XX y el XXI. La tabla dinámica seguirá igual de dinámica y se reducirá el tamaño del libro y, por lo tanto, los tiempos para abrirlo y recalcularlo…
- ¡¡¡ OBJETIVO CONSEGUIDO !!!
Si has seguido todos los pasos anteriores o has seguido las explicaciones del vídeo, ¡¡¡ ya tendrás un calendario dentro de una tabla dinámica !!!
Si no has seguido los pasos, o no lo has conseguido, puedes descargar esta plantilla desde Google (con el botón "Excel Download") o desde el enlace a Microsoft OneDrive, para jugar con este calendario:
Como aplicación de las tablas dinámicas he diseñado 3 calendarios más que te pueden interesar:
- Calendario Laboral Dinámico en Excel | #ExcelPedroWave
- Calendario Laboral con Festivos Dinámicos | #ExcelPedroWave
- Calendario de Eventos en Excel | #ExcelPedroWave
Comenta si ha sido una pérdida de tiempo o si has aprendido alguna técnica nueva que te haya servido para mejorar en tu dominio de Excel.