Sustituir SUMAR.SI.CONJUNTO lento por MMULT y BYCOL en análisis de inventario

Un miembro desde Ecuador tiene un modelo de inventario con SUMAR.SI.CONJUNTO dentro de una fórmula LET con ELEGIRCOLS y FILTRAR. El problema: con miles de filas, la fórmula se vuelve muy lenta. La comunidad propone alternativas matriciales mucho más eficientes.

Con MMULT (Leo): reemplaza SUMAR.SI.CONJUNTO por una multiplicación de matrices. N() convierte la comparación booleana en 0/1, y MMULT hace la suma condicional en una sola operación:

``
=MMULT(
N(_MES = ENFILA(ELEGIRCOLS(_BD; 1)));
ELEGIRCOLS(_BD; 3)
)
`

Con BYCOL (Leo): alternativa que recorre cada columna multiplicando la condición por los valores y sumando:

`
=BYCOL(
(ENFILA(_MES) = ELEGIRCOLS(_BD; 1)) * ELEGIRCOLS(_BD; 3);
SUMA
)
`

Con AGRUPARPOR (Leo): para el caso más simple de agrupar por una sola dimensión:

`
=LET(C; ELEGIRCOLS; AGRUPARPOR(C(_VpOS; 2); C(_VpOS; 8); SUMA;; 0))
`

Leo comparte además el truco de asignar ELEGIRCOLS a una variable C dentro de LET para acortar fórmulas que usan ELEGIRCOLS repetidamente. C(rango; 2; 3) es mucho más legible que repetir ELEGIRCOLS cinco veces.

La clave del rendimiento: MMULT hace toda la suma condicional en una sola operación matricial, mientras que SUMAR.SI.CONJUNTO` evalúa cada combinación de criterios por separado.

Más contenido de Excel en InflueXcel