lunes, 8 de junio de 2009

Suma Condicional.

Años atrás se me planteó un problema profesional; tenía que obtener un resultado condicionado a múltiples variables-condiciones. Debía calcular el importe a facturar a unos clientes en función a una cuota fija y/o otra variable, según unos parámetros de facturación de los clientes. Veamos cuál podría ser la situación de los clientes sobre los que calcular su cuota fija y variable:


Para llegar al resultado final habría que aplicar las condiciones firmadas con cada uno de ellos, referenciado a las fechas mensuales de facturación así como de ese canon fijo y/o variable. Es decir, para el Cliente1 cuya facturación en julio de 2009 ha sido 5.000 eur se le debe aplicar una cuota fija de 750 eur y una variable del 3% sobre su facturación mensual. Hay una doble condición a ejecutar sobre la fecha junto a una tercera con el Cliente concreto.
Partiendo de las siguientes condiciones o cláusulas contractuales de cada cliente:


Realizaremos entonces el cruce de información para llegar al resultado final. Aplicaremos una SUMA CONDCIONAL, en su forma matricial, ya que será la única forma de conseguirlo. Si lo necesitáramos podríamos hacer uso del asistente para Suma Condicional (siempre que tengamos instalada dicha utilidad); si no fuera el caso escribiríamos para obtener la cuota fija:
=SUMA(SI($I$2:$I$7=$B2;SI($H$2:$H$7>=$A2;SI($G$2:$G$7<=$A2;$J$2:$J$7;0);0);0))
y para obtener la cuota variable:
=C2*SUMA(SI($N$2:$N$5=$B2;SI($M$2:$M$5>=$A2;SI($L$2:$L$5<=$A2;$O$2:$O$5;0);0);0))
ejecutando ambas en forma matricial (Ctrl+Mayus+Enter); y obteniendo:


Consulta4 suma condicional matriciales

Consulta4 suma con...
Hosted by eSnips


que era lo buscado.

8 comentarios:

  1. Podrias haber incorporado las caabeceras de columnas.....asi no se entiende
    saludos

    ResponderEliminar
  2. Gracias por la observación... lo modificaré.
    Por otro lado es posible descargarse el ejercicio para analizarlo.
    Un saludo

    ResponderEliminar
  3. Interesante, yo ando buscando una forma de poder realizar una suma con dos condicionantes, me explico, tengo un catálogo de cuentas, y necesito que mes a mes se descargue la sumatoria de lo que se captura en un listado de bancos, por un lado tengo en una hoja de excel mi posición bancaria, y por otro lado tengo un Flujo de efectivo mensual, neceisto que en el Flujo me descargue por mes y por concepto la sumatoria que resulte.

    Espero me puedan ayudar.

    Gracias

    ResponderEliminar
  4. Sin ver un ejemplo claro de la estructura que planteas en tu hoja de cálculo, creo que te podría ayudar el uso de la función
    SUMAR.SI.CONJUNTO
    http://excelforo.blogspot.com/2010/02/sumas-condicionadas-sumarsiconjunto.html
    Si necesitas mayor detalle envíame un ejemplo a
    excelforo@gmail.com
    Slds

    ResponderEliminar
  5. Hola.
    Por lo que veo, se usa un anidamiento de funciones SI() para producir el mismo efecto que si encadenáramos condiciones con Y() que posiblemente no funcionen en un esquema matricial. ¿Cuál sería la sintaxix de SUMA.SI() matricial para producir el efecto de O() en la condición, o sea, que la condición se considere verdadera cuando cualquiera de dos o tres términos sea verdadero?
    Gracias.
    Orlando.

    ResponderEliminar
  6. Hola Orlando,
    básicamente aplicar el criterio O a una función de SUMA, sea condicionada o no, consiste en sumar ambas restricciones; algo del estilo:
    {=SUMA(SI(condición1; resultado))+SUMA(SI(condición2; resultado))}
    Subiré en esta semana un ejemplo
    Slds

    ResponderEliminar
  7. Gracias por tu respuesta.
    Lo he resuelto de una forma muy similar, con otra sintaxis que en lugar de hacer varias sumas considera varios términos condicionados de la misma función suma.

    {=SUMA(SI(condición1; resultado);SI(condición2; resultado))}

    Igualmente estaré pendiente del ejemplo.

    Slds.

    ResponderEliminar
    Respuestas
    1. Cierto, Orlando...
      realmente es la misma 'táctica', ya que en ambos casos se suman las condiciones.
      El ejemplo que estoy preparando, no te aportará ideas nuevas.
      Muchas gracias por compartir tus ideas!!
      Un saludo

      Eliminar