jueves, 4 de octubre de 2018

Suma apoyada en celda combinada

Quizá no te resulte llamativo el nombre de este post, pero es sin duda una de las cuestiones más frecuentes con las que nos enfrentamos.
Trabajar apoyándonos en celdas combinadas.

Veámoslo mas claro en la siguiente imagen:

Suma apoyada en celda combinada



El objetivo es claro, sumar las cantidades que corresponden al mes buscado, en el ejemplo 'Febrero' (20+21).
Es importante notar que, en estos casos, los datos están distribuidos de manera homogénea, es decir, en pares de dos para cada mes.

Lo que haremos será localizar el inicio de ese rango de dos celdas a sumar, lo haremos con la función INDICE:
INDICE($C$2:$C$25;COINCIDIR(E2;B2:B25;0))
para una vez identificado, generar un rango formulado con DESREF:
DESREF(inicio;;;2;1)
que finalmente será el que sumaremos:
=SUMA(DESREF(INDICE($C$2:$C$25;COINCIDIR(E2;B2:B25;0));;;2;1))


Podemos comprobar que la operación es correcta para cualquier mes...

Otra cuestión similar, igual de frecuente, es querer acumular por un criterio cuando ese 'campo/columna' tiene las celdas combinadas.
Por ejemplo:

Suma apoyada en celda combinada


El asunto es claro, deseamos acumular los importes correspondientes al código deseado (en el ejemplo 'xxx').
El problema son las celdas combinadas que realmente, a efectos de cálculo, solo están en una de las dos celdas que deberían...

La solución pasa por generar un rango matricial 'virtual' de ceros y unos, debiendo corresponder los unos a las cantidades a acumular.

Nuevamente es fundamental la homogeneidad en la distribución de datos, en el ejemplo cada dos celdas.

Nuestra fórmula matricial (recuerda validarla con Ctrl+Mayus+Enter), sustentada sobre SUMAPRODUCTO es:
=SUMAPRODUCTO(SI($D$2:$D$25=$G$2;1;SI(DESREF($D$2:$D$25;-1;0)=$G$2;1;0));$E$2:$E$25)

que multiplica nuestra matriz de 0 y 1 por los importes de E2:E25.
Esa matriz de 0 y 1 surge de:
SI($D$2:$D$25=$G$2;1;SI(DESREF($D$2:$D$25;-1;0)=$G$2;1;0))

que se puede visualizar a modo de ejemplo en el rango B2:B25 de la imagen...


Se puede comprobar como en ambos ejemplos, una manera de combatir esas celdas combinadas es el uso de la función DESREF, que nos permite generar rangos matriciales o comparativas sobre celdas posicionadas.

No hay comentarios:

Publicar un comentario

Nota: solo los miembros de este blog pueden publicar comentarios.