Ordenar meses cronológicamente en PIVOTARPOR
Problema clásico con PIVOTARPOR: cuando los meses vienen como texto ("enero", "febrero"...), las columnas se ordenan alfabéticamente en lugar de cronológicamente. Abril aparece antes que enero, diciembre antes que febrero... un caos.
La comunidad aporta varias soluciones, cada una con su enfoque:
Truco clave: MES(1&"enero") devuelve 1 (Hugo). Al concatenar "1" delante de un nombre de mes en español, Excel lo interpreta como fecha ("1enero" = 1 de enero) y MES() extrae el número. Esta es la base de las demás soluciones.
Con APILARH para crear columna auxiliar (Alejandro): añade el número de mes como primera columna del campo de columnas para que PIVOTARPOR ordene por él:
``
=PIVOTARPOR(
campofilas;
APILARH(MES(BD_2025[Fecha Ref.]); MAYUSC(TEXTO(BD_2025[Fecha Ref.]; "mmm")));
valores;
SUMA;; 0
)
`
Con array constante en TEXTO (Gerson): la versión más elegante. Usa {"m";"mmm"} dentro de TEXTO para generar ambas columnas (número y nombre) sin necesidad de APILARH:
`
=PIVOTARPOR(
campofilas;
TEXTO("1"&campofechas; {"m";"mmm"});
valores;
SUMA;; 0;; 0
)
`
Solución completa con EXCLUIR (Leo): cuando el resultado incluye la fila/columna numérica auxiliar, se elimina con EXCLUIR para dejar solo los nombres de mes:
`
=EXCLUIR(
PIVOTARPOR(
filas;
APILARH(MES(1&meses); meses);
valores;
SUMA;; 0;; 0
);
1
)
`
Leo explica la técnica paso a paso: concatenar "1" al nombre del mes para simular una fecha, extraer el número con MES, apilarlo como primera columna para que PIVOTARPOR` ordene por él, y finalmente excluir esa columna auxiliar del resultado.
Montas un resumen con PIVOTARPOR, agrupas por mes, y el resultado sale ordenado así: abril, agosto, diciembre, enero... Alfabéticamente. Es uno de los tropiezos más comunes con las funciones de agrupación modernas, y la comunidad lo resolvió con varias fórmulas que merece la pena conocer.
Por qué pasa
PIVOTARPOR ordena los campos de columnas según su valor. Si los meses vienen como texto ("enero", "febrero"), los ordena como texto. Y en orden alfabético, abril va antes que enero.
La solución pasa por darle a la función algo numérico por lo que ordenar, sin perder el nombre legible del mes en la cabecera.
El truco de base: convertir el nombre del mes en número
Hugo aporta la pieza que sostiene todas las demás soluciones:
=MES("1"&"enero")Al concatenar un uno delante del nombre del mes, Excel interpreta el texto resultante como una fecha real (el 1 de enero) y MES devuelve su número. Funciona con todos los meses en español, sin tabla de equivalencias ni CAMBIAR de doce ramas.
A partir de aquí, el problema es simplemente colocar ese número como campo de ordenación.
Enfoque 1: columna auxiliar con APILARH
Alejandro apila el número de mes delante del nombre, de forma que PIVOTARPOR reciba dos campos de columnas y ordene por el primero:
=PIVOTARPOR(
campofilas;
APILARH(MES(BD_2025[Fecha Ref.]); MAYUSC(TEXTO(BD_2025[Fecha Ref.]; "mmm")));
valores;
SUMA;; 0
)Aquí los datos ya vienen como fecha, así que MES se aplica directamente sobre la columna. El nombre corto del mes se genera con TEXTO y el formato de tres letras, y MAYUSC lo deja en mayúsculas.
Enfoque 2: una sola llamada a TEXTO con array constante
Gerson firma la versión más compacta. En lugar de apilar dos expresiones, pasa a TEXTO una constante matricial vertical con dos formatos: el numérico del mes y el de nombre corto.
=PIVOTARPOR(
campofilas;
TEXTO("1"&campofechas; {"m";"mmm"});
valores;
SUMA;; 0;; 0
)TEXTO recibe un valor y dos formatos a la vez, así que devuelve dos columnas de golpe: el número de mes y su nombre. Sin APILARH, sin repetir la referencia al rango. El "1"& de delante es el truco de Hugo aplicado a la columna entera.
Es el tipo de fórmula que parece magia hasta que ves que el segundo argumento de TEXTO admite una matriz igual que cualquier otro.
Enfoque 3: quitar la columna auxiliar del resultado
El efecto secundario de todo lo anterior es que la fila numérica auxiliar aparece en el resultado. Leo lo remata con EXCLUIR:
=EXCLUIR(
PIVOTARPOR(
filas;
APILARH(MES("1"&meses); meses);
valores;
SUMA;; 0;; 0
);
1
)EXCLUIR(matriz; 1) elimina la primera fila del resultado, que es justo la de los números de mes. Queda la tabla con los nombres ordenados de enero a diciembre y sin rastro del andamiaje.
Leo desglosa la receta completa en cuatro pasos, que es la forma más clara de recordarla:
- Concatenar un uno al nombre del mes para simular una fecha
- Extraer el número con
MES - Apilarlo como primer campo de columnas para que mande en la ordenación
- Quitar esa fila con
EXCLUIR
Funciones clave
PIVOTARPOR— tabla de resumen dinámica por fórmula; ordena por el primer campo que le pasesMES— extrae el número de mes de una fecha, y de un texto que Excel pueda leer como fechaTEXTO— admite una matriz de formatos, no solo unoAPILARH— pega la columna de orden delante de la de nombresEXCLUIR— elimina filas o columnas del resultado, ideal para limpiar auxiliares
Conclusión
El mismo problema aparece con días de la semana, trimestres o cualquier categoría con orden propio que no coincida con el alfabético. La receta es siempre la misma: generar una clave numérica de ordenación, ponerla primero y quitarla al final.
Este caso salió de una duda concreta en el grupo de WhatsApp de InflueXcel, y en pocas horas había cuatro enfoques encima de la mesa. Así se aprende Excel de verdad: viendo cómo distinta gente ataca el mismo obstáculo.
Más casos con estas funciones
Más contenido de Excel en InflueXcel
- Reestructurar datos apilados con LAMBDA y PIVOTARPOR CasoUn miembro de la comunidad comparte un archivo de revisión de Seguridad Social con una tabla amplia (34 columnas x 1540 filas) en formato "a
- Consolidar datos repetidos con REDUCE, APILARV y PIVOTARPOR CasoLa comunidad aborda un caso de consolidación de datos donde hay tareas con encabezados repetidos que necesitan combinarse dinámicamente. El
- Acumular el saldo en PIVOTARPOR: una función de agregación distinta por columna CasoNuevo caso que empieza con una suposición razonable y acaba en una contraprueba del propio autor. Juan trae un libro mayor en bruto y quiere
- Saldo acumulado por mes: tres enfoques (REDUCE+BYROW, PIVOTARPOR+acumulado, MMULT) CasoJuan plantea una pregunta que parece sencilla y se acaba convirtiendo en tres clases magistrales sobre cómo recorrer una matriz mes a mes. T
- Comentarios persistentes junto a AGRUPARPOR/PIVOTARPOR CasoJuan plantea un problema muy habitual para quienes trabajan con PIVOTARPOR o AGRUPARPOR: añadir comentarios o anotaciones en columnas auxili
- PIVOTARPOR: cadenas vacías y orden cronológico mensual CasoJuan trae dos problemas de PIVOTARPOR el mismo día, ambos muy prácticos y con soluciones elegantes de la comunidad. Problema 1: cadenas vací
- Formato dinámico AGRUPARPOR PIVOTARPOR TutorialAplicar formato condicional a las matrices calculadas es fundamental para conseguir que su legibilidad sea óptima
- Funciones personalizadas en Excel: LET, LAMBDA y recursividad TutorialCómo pasar de una fórmula escrita a mano a una función propia que puedes llamar por su nombre en cualquier libro. Los tres vídeos de esta pá
- IMPORTTEXT: importar múltiples CSV con LAMBDA recursiva y exploración profunda CasoCaso doble que combina la resolución de un problema práctico con una exploración exhaustiva de las nuevas funciones IMPORTTEXT e IMPORTCSV d
- Detectar qué celdas dependen de otras hojas o ficheros con formato condicional TutorialTe pasan un fichero que no has hecho tú y la primera pregunta siempre es la misma: ¿de dónde salen estos números? Algunos están escritos a m