Tabla de contenido
El artículo muestra algunas formas diferentes de obtener el valor máximo en Excel basándose en una o varias condiciones que usted especifique.
En nuestro tutorial anterior, vimos los usos comunes de la función MAX, que está diseñada para devolver el número más grande de un conjunto de datos. En algunas situaciones, sin embargo, puede que necesite profundizar más en sus datos para encontrar el valor máximo basado en ciertos criterios. Esto se puede hacer utilizando algunas fórmulas diferentes, y este artículo explica todas las formas posibles.
Fórmula MAX IF de Excel
Hasta hace poco, Microsoft Excel no tenía una función MAX IF incorporada para obtener el valor máximo basado en condiciones. Con la introducción de MAXIFS en Excel 2019, podemos hacer max condicional de una manera fácil.
En Excel 2016 y versiones anteriores, todavía tienes que crear tu propio fórmula de matriz combinando la función MAX con una sentencia IF:
{=MAX(IF( rango_de_criterios = criterios , rango_máximo ))}Para ver cómo funciona esta fórmula genérica MAX IF con datos reales, considere el siguiente ejemplo. Supongamos que tiene una tabla con los resultados de salto de longitud de varios estudiantes. La tabla incluye los datos de tres rondas, y usted está buscando el mejor resultado de un atleta en particular, digamos Jacob. Con los nombres de los estudiantes en A2:A10 y las distancias en C2:C10, la fórmula toma esta forma:
=MAX(IF(A2:A10="Jacob", C2:C10))
Tenga en cuenta que una fórmula de matriz debe introducirse siempre pulsando simultáneamente las teclas Ctrl + Mayús + Intro. Como resultado, se rodea automáticamente de llaves como se muestra en la siguiente captura de pantalla (¡escribir las llaves manualmente no funcionará!).
En las hojas de cálculo de la vida real, es más conveniente introducir el criterio en alguna celda, para poder cambiar fácilmente la condición sin cambiar la fórmula. Así, escribimos el nombre deseado en F1 y obtenemos el siguiente resultado:
=MAX(IF(A2:A10=F1, C2:C10))
Cómo funciona esta fórmula
En la prueba lógica de la función IF, comparamos la lista de nombres (A2:A10) con el nombre de destino (F1). El resultado de esta operación es una matriz de TRUE y FALSE, donde los valores TRUE representan nombres que coinciden con el nombre de destino (Jacob):
{FALSO;FALSO;FALSO;VERDADERO;VERDADERO;FALSO;FALSO;FALSO}
Para el value_ if_true suministramos los resultados del salto largo (C2:C10), de modo que si la prueba lógica se evalúa como TRUE, se devuelve el número correspondiente de la columna C. El argumento value_ if_false se omite, lo que significa que sólo tendrá un valor FALSE cuando no se cumpla la condición:
{FALSO;FALSO;FALSO;5,48;5,42;5,57;FALSO;FALSO;FALSO}
Esta matriz se alimenta a la función MAX, que devuelve el número máximo ignorando los valores FALSE.
Consejo: para ver las matrices internas de las que se ha hablado anteriormente, seleccione la parte correspondiente de la fórmula en la hoja de cálculo y pulse la tecla F9. Para salir del modo de evaluación de fórmulas, pulse la tecla Esc.
Fórmula MAX IF con múltiples criterios
Si necesita encontrar el valor máximo basándose en más de una condición, puede:
Utilice declaraciones IF anidadas para incluir criterios adicionales:
{=MAX(IF( rango_de_criterios1 = criterios1 IF( rango_de_criterios2 = criterios2 , rango_máximo )))}O manejar múltiples criterios utilizando la operación de multiplicación:
{=MAX(IF(( rango_de_criterios1 = criterios1 ) * ( rango_de_criterios2 = criterios2 ), rango_máximo ))}Supongamos que tienes los resultados de chicos y chicas en una única tabla y deseas encontrar el salto más largo entre las chicas en la ronda 3. Para ello, introducimos el primer criterio (femenino) en G1, el segundo criterio (3) en G2, y utilizamos las siguientes fórmulas para calcular el valor máximo:
=MAX(IF(B2:B16=G1, IF(C2:C16=G2, D2:D16)))
=MAX(IF((B2:B16=G1)*(C2:C16=G2), D2:D16))
Dado que ambas son fórmulas de matriz, recuerde pulsar Ctrl + Mayús + Intro para completarlas correctamente.
Como se muestra en la captura de pantalla de abajo, las fórmulas producen el mismo resultado, por lo que cuál utilizar es una cuestión de preferencia personal. Para mí, la fórmula con la lógica booleana es más fácil de leer y construir - permite añadir tantas condiciones como desee sin anidar funciones IF adicionales.
Cómo funcionan estas fórmulas
La primera fórmula utiliza dos funciones IF anidadas para evaluar dos criterios. En la prueba lógica de la primera sentencia IF, comparamos los valores de la columna Sexo (B2:B16) con el criterio de G1 ("Mujer"). El resultado es una matriz de valores TRUE y FALSE, donde TRUE representa los datos que coinciden con el criterio:
{FALSO; FALSO; FALSO; VERDADERO; VERDADERO; VERDADERO; FALSO; FALSO; FALSO; FALSO; FALSO; VERDADERO; VERDADERO}
De forma similar, la segunda función IF comprueba los valores de la columna Round (C2:C16) con el criterio de G2.
Para el value_if_true en la segunda sentencia IF, suministramos los resultados del salto de longitud (D2:D16), y de esta forma obtenemos los ítems que tienen TRUE en las dos primeras matrices en las posiciones correspondientes (es decir, los ítems en los que el género es "femenino" y la ronda es 3):
{FALSO; FALSO; FALSO; FALSO; 4,63; FALSO; FALSO; FALSO; FALSO; FALSO; FALSO; FALSO; 4,52}
Esta matriz final va a la función MAX y devuelve el número mayor.
La segunda fórmula evalúa las mismas condiciones dentro de una única prueba lógica y la operación de multiplicación funciona como el operador AND:
Cuando los valores TRUE y FALSE se utilizan en cualquier operación aritmética, se convierten en 1's y 0's, respectivamente. Y como multiplicar por 0 siempre da cero, la matriz resultante tiene 1 sólo cuando todas las condiciones son TRUE. Esta matriz se evalúa en la prueba lógica de la función IF, que devuelve las distancias correspondientes a los elementos 1 (TRUE).
MAX IF sin matriz
Muchos usuarios de Excel, entre los que me incluyo, tienen prejuicios contra las fórmulas de matrices e intentan deshacerse de ellas siempre que pueden. Por suerte, Microsoft Excel tiene unas cuantas funciones que manejan matrices de forma nativa, y podemos utilizar una de esas funciones, concretamente SUMPRODUCT, como una especie de "envoltorio" alrededor de MAX.
La fórmula genérica MAX IF sin matriz es la siguiente:
=SUMPRODUCTO(MAX(( rango_de_criterios1 = criterios1 ) * ( rango_de_criterios2 = criterios2 ) * rango_máximo ))Naturalmente, puede añadir más pares gama/criterios si es necesario.
Para ver la fórmula en acción, utilizaremos los datos del ejemplo anterior. El objetivo es obtener el salto máximo de una atleta femenina en la ronda 3:
=SUMPRODUCTO(MAX(((B2:B16=G1) * (C2:C16=G2) * (D2:D16))))
Esta fórmula compite con una pulsación normal de la tecla Intro y devuelve el mismo resultado que la fórmula array MAX IF:
Si observa detenidamente la captura de pantalla anterior, podrá observar que los saltos no válidos marcados con "x" en los ejemplos anteriores tienen ahora valores 0 en las filas 3, 11 y 15, y en la siguiente sección se explica por qué.
Cómo funciona esta fórmula
Al igual que con la fórmula MAX IF, evaluamos dos criterios comparando cada valor de las columnas Gender (B2:B16) y Round (C2:C16) con los criterios de las celdas G1 y G2. El resultado son dos matrices de valores TRUE y FALSE. La multiplicación de los elementos de las matrices en las mismas posiciones convierte TRUE y FALSE en 1 y 0, respectivamente, donde 1 representa los elementos que cumplen ambos criterios. El tercer elemento multiplicadocontiene los resultados del salto largo (D2:D16). Y como multiplicar por 0 da cero, sólo sobreviven los elementos que tienen 1 (TRUE) en las posiciones correspondientes:
{0; 0; 0; 0; 0; 4.63; 0; 0; 0; 0; 0; 0; 0; 0; 4.52}
En caso de que rango_máximo contiene cualquier valor de texto, la operación de multiplicación devuelve el error #VALOR debido al cual la fórmula completa no funcionará.
La función MAX lo toma de aquí y devuelve el mayor número que cumple las condiciones especificadas. La matriz resultante que consiste en un único elemento {4.63} va a la función SUMPRODUCT y ésta devuelve el número máximo en una celda.
Nota. Debido a su lógica específica, la fórmula funciona con las siguientes salvedades:
- El rango donde se busca el valor más alto debe contener sólo números. Si hay algún valor de texto, se devuelve un error #¡VALOR!
- La fórmula no puede evaluar la condición "no igual a cero" en un conjunto de datos negativos. Para encontrar el valor máximo ignorando los ceros, utilice una fórmula MAX IF o la función MAXIFS.
Fórmula MAX IF de Excel con lógica OR
Para hallar el valor máximo cuando cualquier de las condiciones especificadas se cumple, utilice la ya familiar fórmula array MAX IF con la lógica booleana, pero sume las condiciones en lugar de multiplicarlas.
{=MAX(IF(( rango_de_criterios1 = criterios1 ) + ( rango_de_criterios2 = criterios2 ), rango_máximo ))}Como alternativa, puede utilizar la siguiente fórmula sin matriz:
=SUMPRODUCTO(MAX((( rango_de_criterios1 = criterios1 ) + ( rango_de_criterios2 = criterios2 )) * rango_máximo ))Como ejemplo, vamos a calcular el mejor resultado en las rondas 2 y 3. Tenga en cuenta que en el lenguaje Excel, la tarea está formulada de forma diferente: devuelve el valor máximo si la ronda es 2 o 3.
Con las rondas enumeradas en B2:B10, los resultados en C2:C10 y los criterios en F1 y H1, la fórmula es la siguiente:
=MAX(IF((B2:B10=F1) + (B2:B10=H1), C2:C10))
Introduce la fórmula pulsando la combinación de teclas Ctrl + Mayús + Intro y obtendrás este resultado:
El valor máximo con las mismas condiciones también se puede encontrar utilizando esta fórmula sin matriz:
=SUMPRODUCTO(MAX(((B2:B10=F1) + (B2:B10=H1)) * C2:C10))
Sin embargo, en este caso tenemos que sustituir todos los valores "x" de la columna C por ceros porque SUMPRODUCT MAX sólo funciona con datos numéricos:
Cómo funcionan estas fórmulas
La fórmula de matriz funciona exactamente igual que MAX IF con lógica AND, salvo que se unen los criterios utilizando la operación de suma en lugar de la multiplicación. En las fórmulas de matriz, la suma funciona como el operador OR:
La suma de dos matrices de VERDADERO y FALSO (que resultan de comprobar los valores de B2:B10 con los criterios de F1 y H1) produce una matriz de 1 y 0 en la que 1 representa los elementos para los que cualquiera de las condiciones es VERDADERA y 0 representa los elementos para los que ambas condiciones son FALSAS. Como resultado, la función IF "conserva" todos los elementos de C2:C10 ( value_if_true ) para los que cualquier condición es TRUE (1); los elementos restantes se sustituyen por FALSE porque la condición value_if_false no se especifica.
La fórmula sin matriz funciona de forma similar. La diferencia es que en lugar de la prueba lógica de IF, se multiplican los elementos de la matriz de 1 y 0 por los elementos de la matriz de resultados de salto de longitud (C2:C10) en las posiciones correspondientes. De esta forma se anulan los elementos que no cumplen ninguna condición (tienen 0 en la primera matriz) y se mantienen los elementos que cumplen una de las condiciones (tienen 1 en el primerarray).
MAXIFS - manera fácil de encontrar el valor más alto con condiciones
Los usuarios de Excel 2019, 2021 y Excel 365 se liberan de la molestia de domar matrices para construir su propia fórmula MAX IF. Estas versiones de Excel proporcionan la tan esperada función MAXIFS que hace que encontrar el valor más grande con condiciones sea un juego de niños.
En el primer argumento de MAXIFS se introduce el rango en el que debe encontrarse el valor máximo (D2:D16 en nuestro caso), y en los argumentos siguientes se pueden introducir hasta 126 pares rango/criterio. Por ejemplo:
=MAXIFS(D2:D16, B2:B16, G1, C2:C16, G2)
Como se muestra en la siguiente captura de pantalla, esta sencilla fórmula no tiene ningún problema para procesar el rango que contiene valores numéricos y de texto:
Para obtener información detallada sobre esta función, consulte la función MAXIFS de Excel con ejemplos de fórmulas.
Así es como puedes encontrar el valor máximo con condiciones en Excel. Gracias por leer y ¡espero verte en nuestro blog la semana que viene!
Cuaderno de prácticas para descargar
Ejemplos de fórmulas IF de Excel MAX (archivo .xlsx)