Taula de continguts
L'article mostra algunes maneres diferents d'obtenir el valor màxim a Excel en funció d'una o diverses condicions que especifiqueu.
En el nostre tutorial anterior, vam analitzar els usos habituals. de la funció MAX que està dissenyada per retornar el nombre més gran d'un conjunt de dades. En algunes situacions, però, és possible que hàgiu d'aprofundir en les vostres dades per trobar el valor màxim en funció de determinats criteris. Això es pot fer utilitzant algunes fórmules diferents, i aquest article explica totes les maneres possibles.
Fórmula d'Excel MAX IF
Fins fa poc, Microsoft Excel no tenia cap funció MAX IF integrada per obtenir el valor màxim en funció de les condicions. Amb la introducció de MAXIFS a Excel 2019, podem fer el màxim condicional d'una manera senzilla.
A Excel 2016 i versions anteriors, encara haureu de crear la vostra pròpia fórmula de matriu combinant la MAX. funció amb una instrucció IF:
{=MAX(IF( interval_criteri= criteri, interval_màx))}Per veure com aquest MAX genèric SI la fórmula funciona amb dades reals, tingueu en compte l'exemple següent. Suposant que teniu una taula amb els resultats de salt de llargada de diversos estudiants. La taula inclou les dades de tres rondes, i vostè està buscant el millor resultat d'un esportista en particular, diu Jacob. Amb els noms dels estudiants a A2:A10 i les distàncies a C2:C10, la fórmula pren aquesta forma:
=MAX(IF(A2:A10="Jacob", C2:C10))
Tingueu en compte que una fórmula matricials'ha d'introduir sempre prement les tecles Ctrl + Maj + Enter simultàniament. Com a resultat, s'envolta automàticament de claudàtors com es mostra a la captura de pantalla següent (no funcionarà escriure les claus manualment!).
En els fulls de treball de la vida real, és més convenient introduir el criteri en alguns cel·la, de manera que podeu canviar fàcilment la condició sense canviar la fórmula. Per tant, escrivim el nom desitjat a F1 i obtenim el resultat següent:
=MAX(IF(A2:A10=F1, C2:C10))
Com funciona aquesta fórmula
A la lògica prova de la funció IF, comparem la llista de noms (A2:A10) amb el nom de destinació (F1). El resultat d'aquesta operació és una matriu de TRUE i FALSE, on els valors TRUE representen noms que coincideixen amb el nom de destinació (Jacob):
{FALSE;FALSE;FALSE;TRUE;TRUE;TRUE;FALSE;FALSE;FALSE}
Per al value_ if_true argument, proporcionem els resultats del salt llarg (C2:C10), de manera que si la prova lògica s'avalua com a TRUE, es retorna el número corresponent de la columna C. S'omet l'argument value_ if_false , és a dir, només tindrà un valor FALSE quan no es compleix la condició:
{FALSE;FALSE;FALSE;5.48;5.42;5.57;FALSE;FALSE;FALSE}
Aquesta matriu s'alimenta a la funció MAX, que retorna el nombre màxim ignorant els valors FALS.
Consell. Per veure les matrius internes comentades anteriorment, seleccioneu la part corresponent de la fórmula al vostre full de treball i premeu la tecla F9. Per sortir del mode d'avaluació de la fórmula, premeu la tecla Esc.
Fórmula MAX IF amb múltiplescriteris
En una situació en què necessiteu trobar el valor màxim basat en més d'una condició, podeu:
Utilitzar declaracions IF imbricades per incloure criteris addicionals:
{=MAX( IF( interval_criteri1 = criteri1 , IF( interval_criteri2 = criteri2 , interval_màxim )))}O gestioneu diversos criteris mitjançant l'operació de multiplicació:
{=MAX(IF(( interval_criteri1 = criteri1 ) * ( interval_criteri2 = criteri2 ), max_range ))}Diguem que tens els resultats de nens i nenes en una sola taula i vols trobar el salt més llarg entre les noies a la ronda 3. Per fer-ho , introduïm el primer criteri (femení) a G1, el segon criteri (3) a G2 i utilitzem les fórmules següents per calcular el valor màxim:
=MAX(IF(B2:B16=G1, IF(C2:C16=G2, D2:D16)))
=MAX(IF((B2:B16=G1)*(C2:C16=G2), D2:D16))
Com que totes dues són fórmules de matriu, recordeu prémer Ctrl + Maj + Retorn per completar-les correctament.
Com es mostra a la captura de pantalla següent, les fórmules produeixen el mateix resultat, de manera que quina s'ha d'utilitzar és una qüestió de tu la teva preferència personal. Per a mi, la fórmula amb la lògica booleana és més fàcil de llegir i construir: permet afegir tantes condicions com vulgueu sense niar funcions SI addicionals.
Com funcionen aquestes fórmules.
La primera fórmula utilitza dues funcions SI imbricades per avaluar dos criteris. A la prova lògica de la primera instrucció IF, comparem els valors de la columna Sexe(B2:B16) amb el criteri de G1 ("Dona"). El resultat és una matriu de valors VERDADERS i FALS on TRUE representa dades que coincideixen amb el criteri:
{FALSE; FALSE; FALSE; TRUE; TRUE; TRUE; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; TRUE; TRUE; TRUE}
De manera similar, la segona funció SI comprova els valors de la columna Rodona (C2 :C16) contra el criteri de G2.
Per a l'argument value_if_true de la segona instrucció IF, proporcionem els resultats del salt llarg (D2:D16) i d'aquesta manera obtenim els ítems que tenen TRUE a les dues primeres matrius en posicions corresponents (és a dir, els elements on el gènere és "femení" i rodó és 3):
{FALSE; FALSE; FALSE; FALSE; FALSE; 4.63; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; 4.52}
Aquesta matriu final va a la funció MAX i retorna el nombre més gran.
La segona fórmula avalua les mateixes condicions dins d'una única prova lògica i l'operació de multiplicació funciona com l'operador AND:
Quan els valors TRUE i FALSE s'utilitzen en qualsevol operació aritmètica, es converteixen en 1 i 0, respectivament. I com que multiplicar per 0 sempre dóna zero, la matriu resultant només té 1 quan totes les condicions són VERTADES. Aquesta matriu s'avalua en la prova lògica de la funció IF, que retorna les distàncies corresponents als elements 1 (TRUE).
MAX IF sense matriu
Molts usuaris d'Excel, inclòs jo, som tenen prejudicis contra les fórmules de matriu i intenteu desfer-ne sempre que sigui possible. Afortunadament, Microsoft Excel té algunes funcions que gestionen la matriu de manera nativa i podem utilitzar-ne unad'aquestes funcions, és a dir, SUMPRODUCT, com una mena d'"embolcall" al voltant de MAX.
La fórmula genèrica MAX IF sense matriu és la següent:
=SUMPRODUCT(MAX(( interval_criteri1 = criteri1 ) * ( interval_criteri2 = criteri2 ) * interval_màx ))Naturalment, podeu afegir més parells d'interval/criteri si necessari.
Per veure la fórmula en acció, utilitzarem les dades de l'exemple anterior. L'objectiu és aconseguir el salt màxim d'una atleta femenina a la ronda 3:
=SUMPRODUCT(MAX(((B2:B16=G1) * (C2:C16=G2) * (D2:D16))))
Aquesta fórmula es competeix amb una tecla Enter normal i retorna el mateix resultat que la fórmula de la matriu MAX IF:
Fent una ullada més de prop a la captura de pantalla anterior, podeu observar que els salts no vàlids marcats amb "x" als exemples anteriors ara tenen valors 0 a les files 3, 11 i 15. , i la següent secció explica per què.
Com funciona aquesta fórmula
Com passa amb la fórmula MAX IF, avaluem dos criteris comparant cada valor en el gènere (B2:B16) i el rodó ( C2:C16) columnes amb els criteris de les cel·les G1 i G2. El resultat són dues matrius de valors TRUE i FALSE. La multiplicació dels elements de les matrius en les mateixes posicions converteix VERTADER i FAL en 1 i 0, respectivament, on 1 representa els elements que compleixen ambdós criteris. La tercera matriu multiplicada conté els resultats del salt de llargada (D2:D16). I com que multiplicar per 0 dóna zero, només els elements que tenen 1 (VERTADER) a les posicions corresponentssurvive:
{0; 0; 0; 0; 0; 4.63; 0; 0; 0; 0; 0; 0; 0; 0; 4.52}
En cas que max_range contingui algun valor de text, l'operació de multiplicació retorna l'error #VALUE perquè no funcionarà tota la fórmula.
La funció MAX l'agafa d'aquí i retorna el nombre més gran que compleix les condicions especificades. La matriu resultant que consta d'un sol element {4.63} va a la funció SUMAPRODUCTE i genera el nombre màxim en una cel·la.
Nota. A causa de la seva lògica específica, la fórmula funciona amb les advertències següents:
- L'interval on cerqueu el valor més alt només ha de contenir números. Si hi ha valors de text, un #VALOR! es retorna l'error.
- La fórmula no pot avaluar la condició "no és igual a zero" en un conjunt de dades negatiu. Per trobar el valor màxim ignorant zeros, utilitzeu una fórmula MAX IF o una funció MAXIFS.
Fórmula Excel MAX IF amb lògica OR
Per trobar el valor màxim quan qualsevol de les condicions especificades es compleix, utilitzeu la fórmula ja familiar de matriu MAX IF amb la lògica booleana, però afegiu les condicions en lloc de multiplicar-les.
{=MAX(IF(( criteria_range1 = criteri1 ) + ( interval_criteri2 = criteri2 ), interval_màxim ))}Com a alternativa, podeu utilitzar la següent fórmula sense matriu :
=SUMPRODUCT(MAX((( interval_criteri1 = criteri1 ) + ( interval_criteri2 = criteri2 )) * max_range ))Com a exemple, anem a treballarel millor resultat a les rondes 2 i 3. Tingueu en compte que en l'idioma Excel, la tasca es formula de manera diferent: retorneu el valor màxim si la ronda és 2 o 3.
Amb les rondes que figuren a B2:B10 , els resultats a C2:C10 i criteris a F1 i H1, la fórmula és la següent:
=MAX(IF((B2:B10=F1) + (B2:B10=H1), C2:C10))
Introduïu la fórmula prement la combinació de tecles Ctrl + Maj + Enter i obtindreu aquest resultat:
El valor màxim amb les mateixes condicions també es pot trobar utilitzant aquesta fórmula sense matriu:
=SUMPRODUCT(MAX(((B2:B10=F1) + (B2:B10=H1)) * C2:C10))
Tanmateix, hem de substituir tots els valors "x" de la columna C per zeros en aquest cas perquè SUMPRODUCT MAX només funciona amb dades numèriques:
Com funcionen aquestes fórmules
La fórmula de matriu funciona exactament de la mateixa manera que MAX IF amb la lògica AND excepte que uneix els criteris utilitzant l'operació de suma en comptes de multiplicar. A les fórmules de matriu, l'addició funciona com l'operador OR:
Sumar dues matrius de TRUE i FALSE (que resulten de comprovar els valors de B2:B10 amb els criteris de F1 i H1) produeix una matriu d'1 i 0 on 1 representa els elements per als quals qualsevol condició és VERTADER i 0 representa els elements per als quals ambdues condicions són FALS. Com a resultat, la funció IF "manté" tots els elements de C2:C10 ( value_if_true ) per als quals qualsevol condició és TRUE (1); els elements restants se substitueixen per FALSE perquè elL'argument value_if_false no s'especifica.
La fórmula que no és matriu funciona de manera similar. La diferència és que en lloc de la prova lògica de IF, multipliqueu els elements de la matriu d'1 i 0 pels elements de la matriu de resultats de salt de llargada (C2:C10) a les posicions corresponents. Això anul·la els elements que no compleixen cap condició (tenen 0 a la primera matriu) i manté els elements que compleixen una de les condicions (tenen 1 a la primera matriu).
MAXIFS: manera fàcil de trobar el més alt. valor amb condicions
Els usuaris d'Excel 2019, 2021 i Excel 365 no tenen problemes de domar les matrius per crear la seva pròpia fórmula MAX IF. Aquestes versions d'Excel proporcionen la tan esperada funció MAXIFS que fa que trobar el valor més gran amb condicions sigui un joc infantil.
En el primer argument de MAXIFS, introduïu l'interval en què s'ha de trobar el valor màxim (D2: D16 en el nostre cas), i en els arguments posteriors podeu introduir fins a 126 parells rang/criteri. Per exemple:
=MAXIFS(D2:D16, B2:B16, G1, C2:C16, G2)
Com es mostra a la captura de pantalla següent, aquesta fórmula senzilla no té cap problema per processar l'interval que conté valors tant numèrics com de text:
Per obtenir informació detallada sobre aquesta funció, vegeu la funció MAXIFS d'Excel amb exemples de fórmules.
Així podeu trobar el valor màxim amb condicions a Excel. Us agraeixo la lectura i esperem veure-us al nostre blog properamentsetmana!
Quader de pràctiques per descarregar
Exemples de fórmules d'Excel MAX IF (fitxer .xlsx)