Bonus con umbral mínimo y tope máximo: SI.CONJUNTO vs multiplicación booleana
Juan plantea un problema de cálculo de bonus con reglas de negocio concretas: un importe de 9.000 euros se reparte entre varios epígrafes, cada uno con su ponderación y porcentaje de cumplimiento. Las reglas son claras pero difíciles de plasmar en una sola fórmula:
- Si el cumplimiento es inferior al 85%, no se genera nada (resultado 0)
- Entre 85% y 115%, se aplica el porcentaje real
- Por encima del 115%, se capea al 115% (tope máximo)
Además, Juan necesita que si la celda del porcentaje está vacía, muestre "Rellenar Obligatorio". Su primer intento con SI.CONJUNTO no le funcionaba: al poner primero la condición >=85%, los valores superiores al 100% nunca llegaban a evaluarse.
Solución 1: SI.CONJUNTO con orden correcto (Iván)
Iván detecta el problema: en SI.CONJUNTO, la primera condición verdadera detiene la evaluación. Hay que poner las condiciones de más restrictiva a menos restrictiva:
``
=SI.CONJUNTO(
$J7=""; "Rellenar Obligatorio";
$J7<85%; "0";
$J7>115%; 115%$I$2G7;
$J7>=85%; $I$2G7J7
)
`
Primero comprueba si supera el 115% (y capea), y solo después aplica el rango 85%-115%. Si se pusiera >=85% antes, un valor de 120% cumpliría esa condición y nunca llegaría a la de >115%.
Solución 2: Fórmula compacta con multiplicación booleana (John)
John propone una solución radicalmente distinta que elimina toda la anidación:
`
=SI(J27="";"Rellenar Obligatorio";I$2G27(J27>=85%)*MIN(115%;J27))
`
La clave está en dos trucos:
- (J27>=85%): una condición lógica dentro de una operación matemática se convierte en 1 (VERDADERO) o 0 (FALSO). Si el porcentaje no llega al 85%, todo el producto da 0 automáticamente.
- MIN(115%;J27): establece el tope máximo comparando el valor real con el 115% y quedándose con el menor. Si J27 es 90%, devuelve 90%. Si J27 es 130%, devuelve 115%.
Combinados, estos dos factores resuelven las tres reglas de negocio en una sola multiplicación, sin necesidad de SI.CONJUNTO` ni condiciones anidadas.
El problema: un bonus con tres reglas de negocio
Juan planteó un cálculo de bonus que parece sencillo pero se resiste a caber en una fórmula. Un importe de 9.000 euros se reparte entre varios epígrafes, cada uno con su ponderación y su porcentaje de cumplimiento. Las reglas:
- Si el cumplimiento es inferior al 85%, no se genera nada (resultado 0).
- Entre 85% y 115%, se aplica el porcentaje real.
- Por encima del 115%, se capea al 115% (tope máximo).
- Y si la celda del porcentaje está vacía, debe mostrar "Rellenar Obligatorio".
Su primer intento con SI.CONJUNTO no funcionaba: al poner primero la condición de "mayor o igual al 85%", los valores por encima del 100% nunca llegaban a evaluar el tope. La comunidad dio con dos soluciones muy distintas.
Solución 1: SI.CONJUNTO con el orden correcto (Iván)
Iván detecta el fallo: en SI.CONJUNTO, la primera condición verdadera detiene la evaluación. Por eso hay que ordenar las condiciones de la más restrictiva a la menos restrictiva:
`` =SI.CONJUNTO( $J7=""; "Rellenar Obligatorio"; $J7<85%; "0"; $J7>115%; 115%$I$2G7; $J7>=85%; $I$2G7J7 ) ``
Primero comprueba si supera el 115% (y capea), y solo después aplica el rango 85%-115%. Si la condición de "mayor o igual al 85%" fuera antes, un valor del 120% la cumpliría y jamás llegaría a la del tope.
Solución 2: multiplicación booleana (John)
John propone algo radicalmente distinto que elimina toda la anidación:
`` =SI(J27="";"Rellenar Obligatorio";I$2G27(J27>=85%)*MIN(115%;J27)) ``
La elegancia está en dos trucos combinados:
(J27>=85%): una condición lógica metida dentro de una multiplicación se convierte en 1 (VERDADERO) o 0 (FALSO). Si el porcentaje no llega al 85%, todo el producto da 0 automáticamente, sin necesidad de unSIexplícito.MIN(115%;J27): fija el tope máximo quedándose con el menor entre el valor real y el 115%. Si J27 vale 90%, devuelve 90%; si vale 130%, devuelve 115%.
Con esos dos factores, las tres reglas de negocio se resuelven en una sola multiplicación.
Funciones clave
SI.CONJUNTO: evalúa condiciones en orden y se queda con la primera verdadera; el orden importa.MIN: la forma más limpia de aplicar un tope máximo (oMAXpara un suelo mínimo).- Aritmética booleana: multiplicar por una condición lógica (que vale 1 o 0) sustituye a muchos
SIanidados y deja fórmulas cortísimas.
Conclusión
Dos filosofías para el mismo problema: la explícita y legible de SI.CONJUNTO (siempre que respetes el orden de las condiciones) y la compacta y matemática de la multiplicación booleana con MIN. Ambas son correctas; elige según prefieras claridad o brevedad. Casos con reglas de negocio reales como este salen cada semana en la comunidad de Influexcel, y verlos resueltos de varias maneras es la mejor escuela.
Más contenido de Excel en InflueXcel
- Cuenta clientes y cervezas en Excel 🍺 Caso "La Taberna: El Poney Pisador" (Nivel 1) Tutorial🍺 Noche cerrada en Bree. Frodo, Sam, Merry y Pippin cruzan la puerta de El Poney Pisador huyendo de los Jinetes Negros: la sala está a reven
- SUMAR.SI.CONJUNTO en acción con El Señor de los Anillos 🃏 El 21 de La Comarca TutorialLo que practicamos en este caso: • Contar cartas por palo con CONTAR.SI • Sumar valores con condiciones (SUMAR.SI / SUMAR.SI.CONJUNTO) • Apl
- Reto de Excel: El cumpleaños de Bilbo 🎂 | CONTAR.SI y SUMAR.SI desde cero (Nivel 1) TutorialEn La Comarca se celebra el cumpleaños número 111 de Bilbo Bolsón: cerveza, pasteles, fuegos artificiales… y algún curioso escondido tras el
- ¡Excel PowerQuery Hack! Conexiones con rutas relativas en 10 minutos! Tutorial¿Harto de ajustar las conexiones en PowerQuery cada vez que compartes tu archivo de Excel? 🙄 Convierte las conexiones de PowerQuery con ruta
- Mejora un 90% el rendimiento de Power Query con SQLite TutorialPower Query es una herramienta potente para consolidar, combinar y calcular datos, pero cuando trabajamos con millones de registros y calcul
- Reorganizar tablas mensuales: cruzar por persona buscando en vertical y en horizontal CasoNuevo caso interesante de la comunidad. Juan tenía varias tablas mensuales (a veces más de una en el mismo mes) y quería reorganizarlas por
- Un dato de todas las hojas, escrito una sola vez CasoEsta semana surgió en la comunidad un reto muy habitual cuando un libro tiene muchas hojas: mostrar el valor de la celda B3 de cada hoja, in
- Un índice de hojas que se genera solo: HYPERLINK en rangos desbordados CasoEsta semana surgió en la comunidad un pequeño "expediente X". Un miembro llegó tras ver un vídeo con una idea clara en la cabeza: montar una
- Reformatear un código alfanumérico al teclear: de NN1234567 a NN-12345-67 CasoEsta semana surgió en la comunidad una duda muy práctica: cómo conseguir que al escribir un código tipo NN1234567 (dos letras seguidas de si
- Reclasificación contable: duplicar cada fila con una conversión distinta por columna, en un único bloque CasoInteresante reto contable planteado esta semana por un miembro de la comunidad. Juan parte de una tabla de apuntes contables (rango C7:P10)