Apilar pares de columnas dinámicamente: 5 enfoques
Hugo tiene un rango con pares de columnas (A-B, C-D, E-F, G-H, I-J) y necesita apilarlos todos en una matriz de 2 columnas. La solución manual con APILARV(A2:B6;C2:D6;E2:F6;...) funciona, pero se complica cuando el rango es grande.
Leo aporta hasta 5 soluciones distintas, de menor a mayor complejidad:
1. AJUSTARFILAS + ENCOL + ORDENAR (si el orden alfabético es aceptable):
``
=ORDENAR(AJUSTARFILAS(ENCOL(A2:J6);2);1)
`
2. REDUCE + APILARV + ELEGIRCOLS (mantiene el orden original):
`
=LET(
i; A2:J6;
c; COLUMNAS(i);
EXCLUIR(
REDUCE(""; 2SECUENCIA(c/2)-2;
LAMBDA(a;b; APILARV(a; ELEGIRCOLS(i; {1\2}+b)))
);
1
)
)
`
3. TOMAR + EXCLUIR (variante del anterior):
`
=LET(
i; A2:J6;
c; COLUMNAS(i);
EXCLUIR(
REDUCE(""; 2SECUENCIA(c/2)-2;
LAMBDA(a;b; APILARV(a; TOMAR(EXCLUIR(i;;b);;2)))
);
1
)
)
`
4. INDICE + ARCHIVOMAKEARRAY:
`
=LET(
i; A2:J6;
f; FILAS(i);
c; COLUMNAS(i);
ARCHIVOMAKEARRAY(fc/2; 2;
LAMBDA(a;b; INDICE(i; RESIDUO(a-1;f)+1; b+2ENTERO((a-1)/f)))
)
)
`
5. INDICE + SECUENCIA (la más compacta):
`
=LET(
i; A2:J6;
f; FILAS(i);
c; COLUMNAS(i);
s; SECUENCIA(fc/2);
t; {1\2};
INDICE(i; RESIDUO(s-1;f)+1; t+2ENTERO((s-1)/f))
)
`
Todas las fórmulas son dinámicas: si el rango crece, el resultado se adapta automáticamente. La clave de las soluciones más avanzadas es convertir un índice lineal (1, 2, 3...) en coordenadas fila/columna mediante RESIDUO y ENTERO`.
El problema
Hugo tiene un rango con pares de columnas (A-B, C-D, E-F, G-H, I-J) y necesita apilarlos todos en una única matriz de dos columnas. La solución manual con APILARV(A2:B6;C2:D6;E2:F6;...) funciona, pero se vuelve inmanejable en cuanto el rango crece. Leo respondió con nada menos que cinco soluciones, ordenadas de la más sencilla a la más sofisticada.
Enfoque 1: la vía rápida con ENCOL y ORDENAR
Si no te importa que el resultado quede ordenado alfabéticamente, esta es imbatible en brevedad:
`` =ORDENAR(AJUSTARFILAS(ENCOL(A2:J6);2);1) ``
ENCOL apila todo el rango en una columna, AJUSTARFILAS(...;2) lo reorganiza en dos columnas y ORDENAR lo deja presentable. Perfecta para salir del paso.
Enfoque 2: REDUCE + APILARV manteniendo el orden
Cuando el orden original importa, entra REDUCE. La idea es recorrer los pares de columnas de dos en dos e ir apilando cada bloque con APILARV, apoyándose en ELEGIRCOLS para seleccionar cada par. Al final, EXCLUIR(...;1) elimina la fila vacía inicial que arrastra el acumulador. Es el patrón de referencia para apilar bloques de tamaño variable.
Enfoque 3: la variante con TOMAR y EXCLUIR
Una versión del mismo esquema que, en lugar de ELEGIRCOLS, usa TOMAR y EXCLUIR para ir "comiéndose" el rango par a par. Misma filosofía, distinta caja de herramientas.
Enfoques 4 y 5: matemática de índices con ARCHIVOMAKEARRAY e INDICE
Las dos soluciones más avanzadas comparten una idea preciosa: convertir un índice lineal (1, 2, 3...) en coordenadas de fila y columna. Con RESIDUO calculas la fila dentro de cada bloque y con ENTERO saltas de un par de columnas al siguiente; una constante de matriz de dos columnas se encarga de recuperar los dos valores de cada par a la vez. ARCHIVOMAKEARRAY construye la matriz resultado celda a celda, mientras que la versión con INDICE y SECUENCIA logra lo mismo de forma aún más compacta. No hay bucles ni acumuladores: el rendimiento es constante aunque el rango sea enorme.
Funciones clave
ENCOLyAJUSTARFILAS: apilar y reorganizar en el número de columnas deseado.REDUCEyAPILARV: el patrón clásico para acumular bloques.ELEGIRCOLS,TOMARyEXCLUIR: seleccionar y recortar rangos.RESIDUOyENTERO: el corazón de la conversión de índice lineal a coordenadas.INDICEySECUENCIA: montar la matriz final sin funciones auxiliares.
Conclusión
De una línea casi mágica a la matemática de índices más fina, estas cinco soluciones son una masterclass sobre cómo el Excel moderno permite resolver un mismo reto con niveles de elegancia crecientes. Todas son dinámicas: si el rango crece, el resultado se adapta solo. Y todas salieron de una sola conversación en la comunidad de Influexcel, donde apilar columnas se convierte en una excusa para aprender a pensar en matrices.
Más contenido de Excel en InflueXcel
- Cuenta clientes y cervezas en Excel 🍺 Caso "La Taberna: El Poney Pisador" (Nivel 1) Tutorial🍺 Noche cerrada en Bree. Frodo, Sam, Merry y Pippin cruzan la puerta de El Poney Pisador huyendo de los Jinetes Negros: la sala está a reven
- SUMAR.SI.CONJUNTO en acción con El Señor de los Anillos 🃏 El 21 de La Comarca TutorialLo que practicamos en este caso: • Contar cartas por palo con CONTAR.SI • Sumar valores con condiciones (SUMAR.SI / SUMAR.SI.CONJUNTO) • Apl
- Reto de Excel: El cumpleaños de Bilbo 🎂 | CONTAR.SI y SUMAR.SI desde cero (Nivel 1) TutorialEn La Comarca se celebra el cumpleaños número 111 de Bilbo Bolsón: cerveza, pasteles, fuegos artificiales… y algún curioso escondido tras el
- ¡Excel PowerQuery Hack! Conexiones con rutas relativas en 10 minutos! Tutorial¿Harto de ajustar las conexiones en PowerQuery cada vez que compartes tu archivo de Excel? 🙄 Convierte las conexiones de PowerQuery con ruta
- Mejora un 90% el rendimiento de Power Query con SQLite TutorialPower Query es una herramienta potente para consolidar, combinar y calcular datos, pero cuando trabajamos con millones de registros y calcul
- Reorganizar tablas mensuales: cruzar por persona buscando en vertical y en horizontal CasoNuevo caso interesante de la comunidad. Juan tenía varias tablas mensuales (a veces más de una en el mismo mes) y quería reorganizarlas por
- Un dato de todas las hojas, escrito una sola vez CasoEsta semana surgió en la comunidad un reto muy habitual cuando un libro tiene muchas hojas: mostrar el valor de la celda B3 de cada hoja, in
- Un índice de hojas que se genera solo: HYPERLINK en rangos desbordados CasoEsta semana surgió en la comunidad un pequeño "expediente X". Un miembro llegó tras ver un vídeo con una idea clara en la cabeza: montar una
- Reformatear un código alfanumérico al teclear: de NN1234567 a NN-12345-67 CasoEsta semana surgió en la comunidad una duda muy práctica: cómo conseguir que al escribir un código tipo NN1234567 (dos letras seguidas de si
- Reclasificación contable: duplicar cada fila con una conversión distinta por columna, en un único bloque CasoInteresante reto contable planteado esta semana por un miembro de la comunidad. Juan parte de una tabla de apuntes contables (rango C7:P10)