Ya hemos mostrado en este blog cómo hacer sumas condicionales con más de una condición
.
En esta nota veremos como enfrentarnos con situaciones especiales del tipo, por ejemplo, cómo sumar los cinco mayores números de una lista.
Por ejemplo, supongamos esta lista de números
Los cinco números mayores de la lista ( 94, 98, 93, 88, 87) suman 454. No hay forma en la cual podamos usar SUMAR.SI para sumar los números mayores de la lista. Pero si podemos hacerlo con SUMAPRODUCTO (o con fórmulas matriciales). EN nuestro caso
=SUMAPRODUCTO(lista*(JERARQUIA(lista;lista)<=5)) donde lista es un nombre que define el rango A2:A21 SUMAPRODUCTO crea dos matrices. Una contiene todos los números del rango "lista" (A2:A21); la otra matriz contiene valores VERDADERO y FALSO producidos por la función JERARQUIA. Cuando el valor calculado es menor o igual a 5, es VERDADERO; en caso contrario, FALSO. Como ya hemos visto, Excel interpreta VERDADERO como 1 al emplearlo en una operación y FALSO como 0.
Para calcular los 5 menores podemos recurrir a la función CONTAR, para determinar cuantos miembros hay en el rango y así poder determinar cuales son los últimos 5 en orden decreciente
=SUMAPRODUCTO(lista*(JERARQUIA(lista;lista)>CONTAR(lista)-5))
o esta mas sencilla, sin CONTAR
=SUMAPRODUCTO(lista*(JERARQUIA(lista;lista;1)<=5))
Si queremos sumar todos los números pares usamos la fórmula
=SUMAPRODUCTO(lista*(RESIDUO(lista;2)=0))
o
=SUMAPRODUCTO(lista*(RESIDUO(lista;2)<>1))
Para los impares usamos
=SUMAPRODUCTO(lista*RESIDUO(lista;2))
que es el equivalente a
=SUMAPRODUCTO(lista*(RESIDUO(lista;2)=1))
pero nos ahorra dos paréntesis.
La función RESIDUO(número;2) da 0 si el número es par. Por eso la expresión RESIDUO(lista;2)=0 es VERDADERO si el número en la "lista" es par.
Para sumar los múltiplos de un determinado número, también podemos usarla función RESIDUO. Por ejemplo, para sumar todos los números que son múltiplos de 3 en nuestra lista, usamos la fórmula
=SUMAPRODUCTO(lista*(RESIDUO(lista;3)=0))
Otro uso de RESIDUO es sumar todos los valores que de las filas pares o impares. Por ejemplo, para sumar todos los valores del rango "lista" que están en filas pares, usamos
=SUMAPRODUCTO(lista*(RESIDUO(FILA(lista);2)=0))
De la misma manera, para sumar los valores en filas impares podemos usar:
=SUMAPRODUCTO(lista*(RESIDUO(FILA(lista);2)<>0))
Si queremos sumar cada tres filas, a partir de la fila 3 podemos usar esta fórmula
=SUMAPRODUCTO(lista*(RESIDUO(FILA(lista);3)=0))
Si queremos sumar cada 3 filas, pero empezando de la primer fila del rango, usamos esta fórmula
=SUMAPRODUCTO((RESIDUO(FILA(lista);3)=2)*lista)
donde "2" es el número de la primer fila del rango.
La fórmula general es =SUMAPRODUCTO((RESIDUO(FILA(lista);n)=m)*lista)
Donde n es el "escalón" (número de filas que queremos saltear en la cuenta) y m es la fila de donde comenzamos a sumar.
El archivo con las fórmulas se puede descargar aquí.
Technorati Tags: MS Excel