Excel MAX IF fórmula para atopar o maior valor con condicións

  • Comparte Isto
Michael Brown

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)

    Michael Brown é un entusiasta da tecnoloxía dedicada á súa paixón por simplificar procesos complexos mediante ferramentas de software. Con máis dunha década de experiencia na industria tecnolóxica, perfeccionou as súas habilidades en Microsoft Excel e Outlook, así como en Follas de cálculo e Documentos de Google. O blog de Michael está dedicado a compartir o seu coñecemento e experiencia con outros, proporcionando consellos e titoriais fáciles de seguir para mellorar a produtividade e a eficiencia. Tanto se es un profesional experimentado como un principiante, o blog de Michael ofrece valiosas ideas e consellos prácticos para sacar o máximo proveito destas ferramentas de software esenciais.