COMBINARX falla con datos de tablas dinámicas: cómo solucionarlo con AGRUPARPOR

Un miembro de la comunidad utiliza COMBINARX para cruzar datos financieros (códigos de cuenta, nombres y comentarios) entre dos años fiscales (FY2024 y FY2025). La fórmula funciona perfectamente con datos limpios, pero al alimentarla con el resultado de tablas dinámicas, los resultados se duplican y descuadran.

El problema de las tablas dinámicas

Las tablas dinámicas, al agrupar datos, introducen celdas vacías en las filas intermedias de cada grupo. Cuando COMBINARX intenta relacionar los campos entre ambas tablas, esos vacíos se cruzan entre sí generando coincidencias falsas y filas duplicadas.

Es un problema sutil: la tabla dinámica parece correcta visualmente (Excel muestra los valores agrupados), pero las celdas que no repiten el valor del grupo están realmente vacías. Y COMBINARX las ve tal cual.

Solución 1: sustituir las tablas dinámicas por AGRUPARPOR

La solución principal consiste en reemplazar las tablas dinámicas por AGRUPARPOR, que genera exactamente el mismo resultado agregado pero sin celdas vacías:

``
=AGRUPARPOR(
datos[Código cuenta]; datos[Cuenta]; datos[Comentario];
datos[Importe]; SUMA
)
`

Con los datos agrupados por AGRUPARPOR, cada fila tiene todos sus campos rellenos y COMBINARX funciona correctamente sin duplicados.

Como señala Leo en su solución: "La tabla dinámica te introduce vacíos en los agrupamientos. Se ha creado un agrupado con función AGRUPARPOR para simular exactamente la tabla dinámica".

Solución 2: alternativa con FILTRAR

Leo también propone una variante usando FILTRAR en vez de COMBINARX, que permite cambiar la dirección de la comparación (2024→2025 o 2025→2024) simplemente intercambiando los nombres de las variables en la fórmula.

Solución 3: comparación completa con REDUCE + LAMBDA

Tras el feedback de Juan, Leo amplía su solución para manejar un escenario más complejo: detectar elementos que están en una tabla pero no en la otra, y mostrarlos alineados en la posición correcta. La fórmula combina REDUCE, LAMBDA, ELEGIRCOLS, FILTRAR y APILARV/H:

`
=LET(
t_1; D5:E10;
t_2; H6:I10;
C; ELEGIRCOLS;
F; FILTRAR;
s; SI(SECUENCIA(;COLUMNAS(t_1));"");
SI.ND(
EXCLUIR(
REDUCE("";
UNICOS(C(APILARV(t_1;t_2);1));
LAMBDA(a;b;
APILARV(a;
APILARH(
F(t_1;C(t_1;1)=b;s);
F(t_2;C(t_2;1)=b;"")
);""
)
)
);1
);""
)
)
`

El truco está en la variable s: una secuencia de vacíos con tantas columnas como la tabla 1. Cuando un elemento de la tabla 2 no tiene correspondencia en la tabla 1, la fórmula devuelve esos vacíos como placeholder, manteniendo los datos de la tabla 2 alineados a la derecha en su posición correcta.

Lección clave

Las tablas dinámicas son excelentes para visualizar datos, pero sus celdas vacías en agrupaciones pueden romper fórmulas que dependen de valores reales en cada celda. AGRUPARPOR es una alternativa moderna que produce datos limpios, perfectos como origen para otras fórmulas. Y para comparaciones complejas entre tablas, REDUCE + LAMBDA` permite iterar sobre valores únicos y construir resultados combinados con total flexibilidad.

Archivos adjuntos: ZIP con los 3 ficheros Excel — el problema original de Juan, la solución con AGRUPARPOR y la alternativa con FILTRAR.

Más contenido de Excel en InflueXcel