Error #CALC con MAP y AGRUPARPOR: solución con REDUCE+APILARV

Nuevo reto de Excel resuelto por la comunidad: un usuario necesita aplicar AGRUPARPOR de forma iterativa sobre un rango de códigos de cuenta, pero al usar MAP obtiene el temido error #CALC. Su fórmula original:

``
=LET(
r; B9:B13;
final_r; MAP(r; LAMBDA(x;
AGRUPARPOR(
Tabla1[k_sc_codigo_cuenta];
Tabla1[n_valor_credito];
SUMA; 0; 0;;
Tabla1[k_sc_codigo_cuenta]=x
)
));
ELEGIRCOLS(final_r; 2)
)
`

Leo explica la causa: MAP, al igual que BYROW y BYCOL, no es capaz de apilar resultados que devuelvan más de un elemento. AGRUPARPOR devuelve múltiples filas, y MAP no puede manejar eso.

Gerson complementa sugiriendo MATRIZATEXTO si se necesita un solo resultado por iteración.

Leo propone la solución usando REDUCE + APILARV, que sí permite acumular resultados de tamaño variable:

`
=LET(
r; B9:B13;
final_r; EXCLUIR(
REDUCE(0; r; LAMBDA(a; x;
APILARV(a;
AGRUPARPOR(
Tabla1[k_sc_codigo_cuenta];
Tabla1[n_valor_credito];
SUMA; 0; 0;;
Tabla1[k_sc_codigo_cuenta]=x
)
)
)); 1
);
ELEGIRCOLS(final_r; 2)
)
`

El patrón REDUCE + APILARV con EXCLUIR del primer elemento (el valor inicial) es una técnica recurrente en la comunidad para superar las limitaciones de MAP/BYROW/BYCOL`.

Más contenido de Excel en InflueXcel