¿Has necesitado obtener el máx o mín utilizando la función condicional if en una hoja de cálculos?
Imagina que tienes las notas de un grupo de alumnos y quieres saber cuál de ellos no llega al suficiente (5) pero tiene más de un cuatro ¿cómo lo harías?
¿Y si quieres saber qué factura, pendiente de cobro, es la de mayor importe?
Por desgracia, a día de hoy, las hojas de cálculo no incluyen una función máxIF o mínIF (nos va a tocar tener que implementarlas 😉 )
Por fortuna, gracias a los arrays (función arrayFormula en Drive) y las funciones IF, MAX y MIN, no es complicado conseguir el resultado deseado.
Veamos cómo resolver (en la hoja de cálculo de Google Drive) el conocer, de las facturas sin pagar, la de menor y mayor importe.
Para obtener la mayor deuda utilizaremos el siguiente cálculo
=MAX(arrayformula(IF(k11:k25=«NO»;j11:j25)))
y para la factura, pendiente de cobro, de menor importe usaremos una expresión similar en la que sólo cambiaremos la función MAX por MIN 😉
=MIN(arrayformula(IF(k11:k25=«NO»;j11:j25)))
Lo único «truculento» en las fórmulas anteriores es
- que se usan rangos de celdas tanto para comprobar si está pagada (k11:k25=»NO») como para devolver el importe de la factura en caso de no estar pagada (J11:J25).
- el uso de arrayformula para convertir en un array (que pueda ser procesado por las funciones max y min) lo que nos devuelve la condicional if.
Espero que el ejemplo sea lo suficientemente ilustrativo (y sencillo) para entender cómo aplicar funciones condicionales a la hora de elegir el máximo o mínimo de un conjunto de valores 😉
Conclusión
Truco para obtener en una hoja de cálculo el valor más grande (o más pequeño) que cumple determinada condición.
Y tú…
- ¿Sabías cómo hacerlo?
- ¿Tienes otro truco para aplicar condiciones en un conjunto de datos?
- ¿Sabrías utilizarlo en otra hoja de cálculos que no fuese Google Drive? (se agradecen comentarios con las «traducciones» a LibreOffice, Excel, …)
- ¿Te ha gustado?
- …
Me gusta mucho tu blog. Llevo mucho tiempo siguiéndolo y siempre he encontrado temas muy útiles 🙂
Creo que «array formula» es lo que llamamos función matricial. Reconozco que estoy un poco flojo en el pastoreo de esas funciones. Esta solución funciona en LibreOffice y probablemente en AOpenOffice y Excel. Creo que lo he resuelto con estas dos fórmulas.
Valor menor no pagado: =K.ESIMO.MENOR(E16:F30;COINCIDIR(«NO»;F16:F30;0)-1)
Valor mayor no pagado: =K.ESIMO.MAYOR(E16:F30;COINCIDIR(«NO»;F16:F30;0)+1)
E16:F30 es el rango que contiene los datos numéricos y las condiciones
F16:F30 es el rango que contiene las condiciones.
A la primera fórmula se le resta una unidad para que encuentre el valor exacto porque si no devolverá el primero encontrado. Por la misma razón, se suma una unidad a la segunda fórmula.
Me gustaMe gusta
No sé cómo se me ha escapado este comentario (perdón por tardar tanto en contestar)
Interesante propuesta (gracias compi), lástima no poder probarla (por falta de Office) ¿alguien nos confirma que funciona tan bien como parece? 😉
Me gustaMe gusta
Que tal, como pudiera hacer un Max.si.conjunto, segun esto la formula debe de funciona en google sheets, pero no me funciona, intente usar tu formula con varias condiciones, pero solo funciona con 1.
Me gustaMe gusta
Hola Ricardo ¿podrías proporcionar una tabla de valores a modo de ejemplo (o compartirme una hoja de prueba con ellos) y una indicación de lo que te gustaría conseguir?
Prometo tratar de dedicarle un rato y salir de dudas respecto al uso de la función max.si.conjunto(…) 😉
Me gustaMe gusta