Agrupar y limpiar referencias con AGRUPARPOR, DIVIDIRTEXTO y APILARV
Interesante problema de un miembro que trabaja con una tabla de "Push Money cancelado" con más de 150 productos. Las referencias vienen duplicadas con formato "CÓDIGO-CÓDIGO" (ej: LABU11000-LABU11000) y necesita agrupar por referencia limpia y fabricante, sumando los importes.
El reto tiene doble vertiente: limpiar la referencia (quedarse con la parte antes del guion) y agrupar los datos filtrando por fabricante. La comunidad aportó tres enfoques distintos, cada uno con sus ventajas.
Solución 1: AGRUPARPOR + TEXTOANTES
Gerson propuso usar AGRUPARPOR con la función SINGLE como agregador, y luego limpiar las referencias con TEXTOANTES:
``
=LET(
a; AGRUPARPOR(
TablaPushMoney[[Referencia]:[Fabricante]];
TablaPushMoney[Push Money cancelado];
SINGLE;; 0;;
TablaPushMoney[Fabricante]="ABUELO"
);
TEXTOANTES(a; "-";; ;; a)
)
`
AGRUPARPOR agrupa por las columnas Referencia y Fabricante, aplicando SINGLE como función (devuelve el valor tal cual cuando no hay duplicados) y filtrando solo el fabricante deseado. Después, TEXTOANTES limpia las referencias quitando todo a partir del guion — y el último argumento a actúa como valor por defecto si no hay guion.
Solución 2: LET + DIVIDIRTEXTO
Otra propuesta más compacta usando DIVIDIRTEXTO para descomponer la tabla completa:
`
=LET(m; DIVIDIRTEXTO(TablaPushMoney&"-"; "-"); SI.ERROR(--m; m))
`
Un enfoque elegante que concatena un guion extra a toda la tabla y luego divide por "-", convirtiendo los resultados numéricos con --. Ojo: DIVIDIRTEXTO tiene un límite de ~32.000 caracteres, así que esta solución puede fallar con tablas muy grandes.
Solución 3: APILARV + TEXTOANTES + APILARH
Un tercer enfoque más explícito reconstruyendo la tabla columna a columna:
`
=APILARV(
TablaPushMoney[#Encabezados];
APILARH(
TEXTOANTES(TablaPushMoney[Referencia]; "-";;;; TablaPushMoney[Referencia]);
TablaPushMoney[Fabricante];
TablaPushMoney[Push Money cancelado]
)
)
`
Aquí se limpia la columna de referencias con TEXTOANTES, se reensambla la tabla horizontalmente con APILARH y se añaden los encabezados originales con APILARV`. Más verbose pero muy claro de leer.
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)