Táboa de contidos
O artigo mostra algunhas formas diferentes de obter o valor máximo en Excel en función dunha ou varias condicións que especifique.
No noso tutorial anterior, analizamos os usos comúns da función MAX que está deseñada para devolver o número máis grande dun conxunto de datos. Non obstante, nalgunhas situacións, é posible que necesites explorar máis os teus datos para atopar o valor máximo en función de determinados criterios. Isto pódese facer usando algunhas fórmulas diferentes e este artigo explica todas as formas posibles.
Fórmula de Excel MAX IF
Ata hai pouco, Microsoft Excel non tiña unha función MAX IF incorporada para obter o valor máximo en función das condicións. Coa introdución de MAXIFS en Excel 2019, podemos facer o máximo condicional dun xeito sinxelo.
En Excel 2016 e versións anteriores, aínda tes que crear a túa propia fórmula de matriz combinando o MAX. función cunha instrución IF:
{=MAX(IF( intervalo_de_criterios= criterio, intervalo_máx.))}Para ver como este MAX xenérico SE a fórmula funciona con datos reais, considere o seguinte exemplo. Supondo que tes unha táboa cos resultados de salto de lonxitude de varios estudantes. A táboa inclúe os datos de tres roldas, e estás buscando o mellor resultado dun atleta en particular, di Jacob. Cos nomes dos estudantes en A2:A10 e as distancias en C2:C10, a fórmula toma esta forma:
=MAX(IF(A2:A10="Jacob", C2:C10))
Ten en conta que unha fórmula matricialsempre debe introducirse premendo simultaneamente as teclas Ctrl + Maiús + Intro. Como resultado, está rodeado automaticamente de corchetes como se mostra na captura de pantalla que aparece a continuación (non funcionará escribir as chaves manualmente). cela, para que poida cambiar facilmente a condición sen cambiar a fórmula. Entón, escribimos o nome desexado en F1 e obtemos o seguinte resultado:
=MAX(IF(A2:A10=F1, C2:C10))
Como funciona esta fórmula
No lóxico proba da función IF, comparamos a lista de nomes (A2:A10) co nome de destino (F1). O resultado desta operación é unha matriz de TRUE e FALSE, onde os valores TRUE representan nomes que coinciden co nome de destino (Jacob):
{FALSE;FALSE;FALSE;TRUE;TRUE;TRUE;FALSE;FALSE;FALSE}
Para o valor_ if_true argumento, fornecemos os resultados do salto de lonxitude (C2:C10), polo que se a proba lóxica é TRUE, devólvese o número correspondente da columna C. O argumento value_ if_false é omitido, o que significa que só terá un valor FALSO onde non se cumpra a condición:
{FALSE;FALSE;FALSE;5.48;5.42;5.57;FALSE;FALSE;FALSE}
Esta matriz envíase á función MAX, que devolve o número máximo ignorando os valores FALSO.
Consello. Para ver as matrices internas comentadas anteriormente, seleccione a parte correspondente da fórmula na súa folla de traballo e prema a tecla F9. Para saír do modo de avaliación da fórmula, prema a tecla Esc.
Fórmula MAX IF con múltiplocriterios
Na situación na que necesites atopar o valor máximo baseado en máis dunha condición, podes:
Usar instrucións IF aniñadas para incluír criterios adicionais:
{=MAX( IF( intervalo_criterio1 = criterio1 , IF( intervalo_criterio2 = criterio2 , intervalo_máx. )))}Ou manexa varios criterios mediante a operación de multiplicación:
{=MAX(IF(( intervalo_criterio1 = criterio1 ) * ( intervalo_criterio2 = criterio2 ), max_range ))}Digamos que tes os resultados dos nenos e das nenas nunha única táboa e queres atopar o salto máis longo entre as nenas na rolda 3. Para facelo , introducimos o primeiro criterio (feminino) en G1, o segundo criterio (3) en G2 e utilizamos as seguintes fórmulas para calcular o valor máximo:
=MAX(IF(B2:B16=G1, IF(C2:C16=G2, D2:D16)))
=MAX(IF((B2:B16=G1)*(C2:C16=G2), D2:D16))
Xa que ambas son fórmulas de matriz, recorda que debes premer Ctrl + Maiús + Intro para completalas correctamente.
Como se mostra na captura de pantalla a continuación, as fórmulas producen o mesmo resultado, polo que cal é unha cuestión de ti a túa preferencia persoal. Para min, a fórmula coa lóxica booleana é máis fácil de ler e construír: permite engadir tantas condicións como queiras sen aniñar funcións IF adicionais.
Como funcionan estas fórmulas.
A primeira fórmula usa dúas funcións IF aniñadas para avaliar dous criterios. Na proba lóxica da primeira instrución IF, comparamos os valores da columna Sexo(B2:B16) co criterio en G1 ("Feminino"). O resultado é unha matriz de valores VERDADEIRO e FALSO onde VERDADEIRO representa datos que coinciden co criterio:
{FALSE; FALSE; FALSE; TRUE; TRUE; TRUE; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; TRUE; TRUE; TRUE}
De forma similar, a segunda función IF verifica os valores da columna Redonda (C2 :C16) contra o criterio de G2.
Para o argumento value_if_true na segunda instrución IF, proporcionamos os resultados do salto de lonxitude (D2:D16) e deste xeito obtemos os elementos que teñen VERDADEIRO nas dúas primeiras matrices en posicións correspondentes (é dicir, os elementos onde o xénero é "feminino" e redondo é 3):
{FALSE; FALSE; FALSE; FALSE; FALSE; 4.63; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; 4.52}
Esta matriz final vai á función MAX e devolve o número máis grande.
A segunda fórmula avalía as mesmas condicións nunha única proba lóxica e a operación de multiplicación funciona como o operador AND:
Cando os valores TRUE e FALSE se usan en calquera operación aritmética, convértense en 1 e 0, respectivamente. E porque multiplicar por 0 sempre dá cero, a matriz resultante ten 1 só cando todas as condicións son VERDADEIRAS. Esta matriz avalíase na proba lóxica da función IF, que devolve as distancias correspondentes aos elementos 1 (VERDADEIRO).
MAX IF sen matriz
Moitos usuarios de Excel, incluído eu, son ten prexuízos contra as fórmulas de matriz e intente desfacerse delas sempre que sexa posible. Afortunadamente, Microsoft Excel ten algunhas funcións que manexan a matriz de forma nativa, e podemos usar unhadestas funcións, a saber, SUMAPRODUTO, como unha especie de "envoltura" arredor de MAX.
A fórmula xenérica MAX IF sen matriz é a seguinte:
=SUMAPRODUTO(MAX(( intervalo_criterio1 = criterio1 ) * ( intervalo_criterio2 = criterio2 ) * intervalo_máx. ))Naturalmente, pode engadir máis pares intervalo/criterio se necesario.
Para ver a fórmula en acción, usaremos os datos do exemplo anterior. O obxectivo é conseguir o salto máximo dunha deportista na rolda 3:
=SUMPRODUCT(MAX(((B2:B16=G1) * (C2:C16=G2) * (D2:D16))))
Esta fórmula compite cunha tecla Intro normal e devolve o mesmo resultado que a fórmula da matriz MAX IF:
Con unha ollada máis atenta á captura de pantalla anterior, podes notar que os saltos non válidos marcados con "x" nos exemplos anteriores agora teñen 0 valores nas filas 3, 11 e 15. , e a seguinte sección explica por que.
Como funciona esta fórmula
Do mesmo xeito que ocorre coa fórmula MAX IF, avaliamos dous criterios comparando cada valor en Xénero (B2:B16) e Ronda ( C2:C16) columnas cos criterios das celas G1 e G2. O resultado son dúas matrices de valores TRUE e FALSE. Multiplicando os elementos das matrices nas mesmas posicións convértese VERDADEIRO e FALSO en 1 e 0, respectivamente, onde 1 representa os elementos que cumpren ambos os criterios. A terceira matriz multiplicada contén os resultados do salto de lonxitude (D2:D16). E porque multiplicar por 0 dá cero, só os elementos que teñen 1 (VERDADEIRO) nas posicións correspondentessurvive:
{0; 0; 0; 0; 0; 4.63; 0; 0; 0; 0; 0; 0; 0; 0; 4.52}
No caso de que max_range conteña algún valor de texto, a operación de multiplicación devolve o erro #VALUE polo que a fórmula completa non funcionará.
A función MAX tómao de aquí e devolve o número máis grande que cumpre as condicións especificadas. A matriz resultante formada por un único elemento {4.63} vai á función SUMAPRODUTO e mostra o número máximo nunha cela.
Nota. Debido á súa lóxica específica, a fórmula funciona coas seguintes advertencias:
- O intervalo onde busca o valor máis alto só debe conter números. Se hai algún valor de texto, un #VALOR! devólvese o erro.
- A fórmula non pode avaliar a condición "non igual a cero" nun conxunto de datos negativo. Para atopar o valor máximo ignorando ceros, use unha fórmula MAX IF ou unha función MAXIFS.
Fórmula Excel MAX IF con lóxica OR
Para atopar o valor máximo cando calquera das condicións especificadas, use a xa familiar fórmula MAX IF da matriz coa lóxica booleana, pero engade as condicións en lugar de multiplicalas.
{=MAX(IF(( intervalo_criterio1 = criterio1 ) + ( intervalo_criterio2 = criterio2 ), intervalo_máx. ))}Como alternativa, pode utilizar a seguinte fórmula non matricial :
=SUMAPRODUTO(MAX((( intervalo_criterio1 = criterio1 ) + ( intervalo_criterio2 = criterio2 )) * max_range ))A modo de exemplo, imos traballaro mellor resultado nas roldas 2 e 3. Teña en conta que na linguaxe Excel, a tarefa está formulada de forma diferente: devolve o valor máximo se a rolda é 2 ou 3.
Coas roldas listadas en B2:B10 , os resultados en C2:C10 e os criterios en F1 e H1, a fórmula é o seguinte:
=MAX(IF((B2:B10=F1) + (B2:B10=H1), C2:C10))
Introduza a fórmula premendo a combinación de teclas Ctrl + Maiús + Intro e obterá este resultado:
O valor máximo coas mesmas condicións tamén se pode atopar usando esta fórmula non matricial:
=SUMPRODUCT(MAX(((B2:B10=F1) + (B2:B10=H1)) * C2:C10))
Non obstante, necesitamos substituír todos os valores "x" da columna C por ceros neste caso porque SUMPRODUCT MAX só funciona con datos numéricos:
Como funcionan estas fórmulas
A fórmula matricial funciona exactamente do mesmo xeito que MAX IF coa lóxica AND excepto que une os criterios mediante a operación de suma en lugar da multiplicación. Nas fórmulas matriciales, a adición funciona como o operador OR:
Engadir dúas matrices de VERDADERO e FALSO (que resultan de comprobar os valores en B2:B10 contra os criterios de F1 e H1) produce unha matriz de 1 e 0 é onde 1 representa os elementos para os que calquera das condicións é VERDADEIRA e 0 representa os elementos para os que ambas condicións son FALSAS. Como resultado, a función IF "mantén" todos os elementos en C2:C10 ( valor_se_verdadeiro ) para os que calquera condición é VERDADEIRA (1); os elementos restantes substitúense por FALSE porque oNon se especifica o argumento value_if_false .
A fórmula non matricial funciona dun xeito similar. A diferenza é que en lugar da proba lóxica de IF, multiplicas os elementos da matriz de 1 e 0 polos elementos da matriz de resultados de salto de lonxitude (C2:C10) nas posicións correspondentes. Isto anula os elementos que non cumpren ningunha condición (teñen 0 na primeira matriz) e mantén os elementos que cumpren unha das condicións (teñen 1 na primeira matriz).
MAXIFS: xeito sinxelo de atopar o máis alto. valor con condicións
Os usuarios de Excel 2019, 2021 e Excel 365 están libres do problema de domar matrices para crear a súa propia fórmula MAX IF. Estas versións de Excel proporcionan a tan esperada función MAXIFS que fai que atopar o valor máis grande con condicións sexa un xogo infantil.
No primeiro argumento de MAXIFS, introduce o intervalo no que se debe atopar o valor máximo (D2: D16 no noso caso), e nos argumentos posteriores pode introducir ata 126 pares rango/criterio. Por exemplo:
=MAXIFS(D2:D16, B2:B16, G1, C2:C16, G2)
Como se mostra na seguinte captura de pantalla, esta fórmula sinxela non ten ningún problema para procesar o intervalo que contén valores numéricos e de texto:
Para obter información detallada sobre esta función, consulta a función MAXIFS de Excel con exemplos de fórmulas.
Así podes atopar o valor máximo con condicións en Excel. Grazas por ler e espero verte no noso blogsemana!
Caderno de prácticas para descargar
Exemplos de fórmulas de Excel MAX IF (ficheiro .xlsx)