martes, 8 de enero de 2019

Suma acumulada de números pares

Días atrás un lector me preguntaba por la manera de obtener la suma acumulada de los números pares de un rango de importes..

Veremos en el post de hoy algunas formas y trucos de conseguirlo.



En primer lugar para facilitar el trabajo, a nuestro rango de valores le asignamos un nombre definido: 'importes'
importes =Hoja1!$B$3:$B$16


Con el nombre creado veamos una primera posibilidad, muy clásica.
En D3 añadimos la fórmula matricial (validada presionando Ctrl+Mayusc+Enter):
=SUMA(SI(RESIDUO(importes;2)=0;importes))

En D4 también podemos insertar la función:
=SUMAPRODUCTO(--(RESIDUO(importes;2)=0);importes)

En ambos casos se emplea la función RESIDUO para determinar si los importes de estudio son pares, basándose en la regla matemática que nos dice que si el resto de una división de un número al dividirlo por dos es cero, implica que el número es PAR.
Con el rango de 1 y 0, tras multiplicarlos por los mismos importes tendremos la suma acumulada deseada.


Una tercera forma es la que muestro en la celda D5:
=SUMAPRODUCTO((--ES.PAR(importes+0));--(importes))
=SUMAPRODUCTO((--ES.PAR(importes*1));--(importes))

donde para descubrir si el importe es par o no aplicamos la función ES.PAR...
OJO al truco!!. Para obtener un vector de 0 y 1 debemos sumar 0 (o multiplicar por 1) el rango empleado dentro de ES.PAR.. solo así se comportará matricialmente como necesitamos.


Un último y rápido apunte... si queremos contar las veces que aparece un número par en nuestro rango podemos aplicar la siguiente fórmula:
=SUMAPRODUCTO(--(RESIDUO(importes;2)=0);--(importes<>""))

Muy similar en sintaxis a las anteriores... la clave está en multiplicar por:
--(importes<>"")
en lugar de solo por
--(importes)


Obviamente para obtener la suma de impares utilizaríamos la prueba lógica
--(RESIDUO(importes;2)=1)

o bien
(--ES.PAR(importes+0))


Nota general: el doble signo menos delante de los argumentos lógicos transforma los VERDADEROS y FALSOS ne 1 y 0.

No hay comentarios:

Publicar un comentario

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