Excel MAX IF -kaava suurimman arvon löytämiseksi ehtojen kanssa

  • Jaa Tämä
Michael Brown

Artikkelissa esitellään muutamia eri tapoja saada Excelissä maksimiarvo yhden tai useamman määrittämäsi ehdon perusteella.

Edellisessä opetusohjelmassamme tarkastelimme MAX-funktion yleisiä käyttötapoja. MAX-funktio on suunniteltu palauttamaan suurin luku tietokokonaisuudessa. Joissakin tilanteissa sinun on kuitenkin ehkä syvennyttävä tietoihin tarkemmin ja löydettävä maksimiarvo tiettyjen kriteerien perusteella. Tämä voidaan tehdä käyttämällä muutamia eri kaavoja, ja tässä artikkelissa selitetään kaikki mahdolliset tavat.

    Excel MAX IF -kaava

    Viime aikoihin asti Microsoft Excelissä ei ollut sisäänrakennettua MAX IF -funktiota, jolla saataisiin maksimiarvo ehtojen perusteella. Kun Excel 2019:ssä on otettu käyttöön MAXIFS, voimme tehdä ehdollisen maksimin helposti.

    Excel 2016:ssa ja aiemmissa versioissa sinun on edelleen luotava oma sarjakaava yhdistämällä MAX-funktio IF-lauseeseen:

    {=MAX(IF( criteria_range = kriteerit , max_range ))}

    Jos haluat nähdä, miten tämä yleinen MAX IF -kaava toimii todellisessa datassa, katso seuraava esimerkki. Oletetaan, että sinulla on taulukko, jossa on useiden opiskelijoiden pituushyppytulokset. Taulukko sisältää tiedot kolmelta kierrokselta, ja etsit tietyn urheilijan, vaikkapa Jacobin, parasta tulosta. Kun opiskelijoiden nimet ovat A2:A10 ja etäisyydet C2:C10, kaava on seuraavanlainen:

    =MAX(IF(A2:A10="Jacob", C2:C10))

    Muista, että matriisikaava on aina syötettävä painamalla samanaikaisesti Ctrl + Shift + Enter -näppäimiä. Tämän seurauksena se ympäröidään automaattisesti sulkeilla, kuten alla olevassa kuvakaappauksessa näkyy (sulkeiden kirjoittaminen käsin ei onnistu!).

    Todellisissa työtaulukoissa on kätevämpää syöttää kriteeri johonkin soluun, jotta voit helposti muuttaa ehtoa muuttamatta kaavaa. Kirjoitamme siis halutun nimen F1-kenttään ja saamme seuraavan tuloksen:

    =MAX(IF(A2:A10=F1, C2:C10))

    Miten tämä kaava toimii

    IF-funktion loogisessa testissä verrataan nimiluetteloa (A2:A10) tavoitenimeen (F1). Tämän operaation tuloksena on joukko TRUE- ja FALSE-arvoja, joissa TRUE-arvot edustavat nimiä, jotka vastaavat tavoitenimeä (Jacob):

    {FALSE;FALSE;FALSE;FALSE;TRUE;TRUE;TRUE;TRUE;FALSE;FALSE;FALSE;FALSE}

    Sillä value_ if_true argumentilla annamme pituushyppytulokset (C2:C10), joten jos looginen testi on TRUE, palautetaan vastaava luku sarakkeesta C. value_ if_false argumentti on jätetty pois, jolloin se saa vain FALSE-arvon, jos ehto ei täyty:

    {FALSE;FALSE;FALSE;FALSE;5.48;5.42;5.57;FALSE;FALSE;FALSE;FALSE;FALSE}

    Tämä joukko syötetään MAX-funktiolle, joka palauttaa maksimiluvun ottamatta huomioon FALSE-arvoja.

    Vihje: Jos haluat nähdä edellä käsitellyt sisäiset taulukot, valitse vastaava kaavan osa laskentataulukosta ja paina F9-näppäintä. Voit poistua kaavan arviointitilasta painamalla Esc-näppäintä.

    MAX IF -kaava useilla kriteereillä

    Jos haluat löytää maksimiarvon useamman kuin yhden ehdon perusteella, voit joko:

    Käytä sisäkkäisiä IF-lausekkeita lisäkriteerien sisällyttämiseksi:

    {=MAX(IF( kriteerit_alue1 = kriteerit1 , IF( kriteerit_alue2 = kriteerit2 , max_range )))}

    Tai käsitellä useita kriteerejä käyttämällä kertolaskuoperaatiota:

    {=MAX(IF((( kriteerit_alue1 = kriteerit1 ) * ( kriteerit_alue2 = kriteerit2 ), max_range ))}

    Oletetaan, että sinulla on poikien ja tyttöjen tulokset yhdessä taulukossa ja haluat löytää pisimmän hypyn tyttöjen joukosta kierroksella 3. Jotta se onnistuisi, syötämme ensimmäisen kriteerin (nainen) G1:een, toisen kriteerin (3) G2:een ja käytämme seuraavia kaavoja maksimiarvon laskemiseen:

    =MAX(IF(B2:B16=G1, IF(C2:C16=G2, D2:D16))))

    =MAX(IF((B2:B16=G1)*(C2:C16=G2), D2:D16))

    Koska molemmat ovat matriisikaavoja, muistathan painaa Ctrl + Shift + Enter, jotta saat ne valmiiksi oikein.

    Kuten alla olevasta kuvakaappauksesta näkyy, kaavat tuottavat saman tuloksen, joten se, kumpaa käytät, riippuu henkilökohtaisista mieltymyksistäsi. Minulle Boolen logiikkaa käyttävä kaava on helpompi lukea ja rakentaa - sen avulla voit lisätä niin monta ehtoa kuin haluat ilman ylimääräisiä IF-funktioita.

    Miten nämä kaavat toimivat

    Ensimmäisessä kaavassa käytetään kahta sisäkkäistä IF-funktiota kahden kriteerin arviointiin. Ensimmäisen IF-lauseen loogisessa testissä verrataan sukupuolen sarakkeen (B2:B16) arvoja G1:n kriteeriin ("Nainen"). Tuloksena on joukko TRUE- ja FALSE-arvoja, joissa TRUE edustaa tietoja, jotka vastaavat kriteeriä:

    {FALSE; FALSE; FALSE; FALSE; TRUE; TRUE; TRUE; TRUE; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; TRUE; TRUE; TRUE; TRUE; TRUE}

    Vastaavalla tavalla toinen IF-funktio tarkistaa Round-sarakkeen (C2:C16) arvot G2:n kriteerin perusteella.

    Sillä value_if_true argumentti toisessa IF-lausekkeessa, annamme pituushyppytulokset (D2:D16), ja näin saamme kohteet, joissa on TRUE kahdessa ensimmäisessä ruudussa vastaavissa paikoissa (eli kohteet, joissa sukupuoli on "nainen" ja kierros on 3):

    {FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; 4.63; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; 4.52}

    Tämä lopullinen joukko menee MAX-funktioon, joka palauttaa suurimman luvun.

    Toinen kaava arvioi samat ehdot yhdessä loogisessa testissä, ja kertolaskuoperaatio toimii kuten AND-operaattori:

    Kun TRUE- ja FALSE-arvoja käytetään missä tahansa aritmeettisessa operaatiossa, ne muunnetaan vastaavasti 1:ksi ja 0:ksi. Ja koska kertominen 0:lla antaa aina nollan, tuloksena syntyvässä matriisissa on 1 vain silloin, kun kaikki ehdot ovat TRUE. Tämä matriisi arvioidaan IF-funktion loogisessa testissä, joka palauttaa 1 (TRUE) -alkioita vastaavat etäisyydet.

    MAX IF ilman arraya

    Monet Excelin käyttäjät, minä mukaan lukien, suhtautuvat ennakkoluuloisesti matriisikaavoihin ja yrittävät päästä niistä eroon aina kun mahdollista. Onneksi Microsoft Excelissä on muutamia funktioita, jotka käsittelevät matriiseja natiivisti, ja voimme käyttää yhtä näistä funktioista, nimittäin SUMPRODUCTia, eräänlaisena "kääreenä" MAXin ympärillä.

    Yleinen MAX IF -kaava ilman arraya on seuraava:

    =SUMPRODUCT(MAX(( kriteerit_alue1 = kriteerit1 ) * ( kriteerit_alue2 = kriteerit2 ) * max_range ))

    Voit luonnollisesti lisätä tarvittaessa lisää alue/kriteeripareja.

    Jotta näemme kaavan toiminnassa, käytämme edellisen esimerkin tietoja. Tavoitteena on saada naisurheilijan maksimihyppy kierroksella 3:

    =SUMPRODUCT(MAX(((B2:B16=G1) * (C2:C16=G2) * (D2:D16))))

    Tämä kaava kilpailee normaalin Enter-näppäimen painalluksen kanssa ja palauttaa saman tuloksen kuin array MAX IF -kaava:

    Kun katsot tarkemmin yllä olevaa kuvakaappausta, huomaat, että edellisissä esimerkeissä "x"-merkillä merkityillä virheellisillä hyppyillä on nyt 0-arvot riveillä 3, 11 ja 15. Seuraavassa osassa selitetään, miksi.

    Miten tämä kaava toimii

    Kuten MAX IF -kaavassa, arvioimme kaksi kriteeriä vertaamalla jokaista arvoa sarakkeissa Gender (B2:B16) ja Round (C2:C16) soluissa G1 ja G2 oleviin kriteereihin. Tuloksena on kaksi TRUE- ja FALSE-arvojen matriisia. Kertomalla matriisien elementit samoissa paikoissa muunnetaan TRUE- ja FALSE-arvot vastaavasti arvoiksi 1 ja 0, joissa 1 edustaa kohteita, jotka täyttävät molemmat kriteerit. Kolmas kerrottuarray sisältää pituushyppytulokset (D2:D16). Ja koska kertomalla 0:lla saadaan nolla, vain ne kohteet, joiden vastaavissa kohdissa on 1 (TRUE), säilyvät:

    {0; 0; 0; 0; 0; 4.63; 0; 0; 0; 0; 0; 0; 0; 0; 4.52}

    Jos max_range sisältää minkä tahansa tekstiarvon, kertolasku palauttaa #VALUE-virheen, jonka vuoksi koko kaava ei toimi.

    MAX-funktio jatkaa tästä ja palauttaa suurimman luvun, joka täyttää määritetyt ehdot. Tuloksena syntyvä, yhdestä elementistä {4.63} koostuva matriisi menee SUMPRODUCT-funktioon, ja se antaa maksimiluvun solussa.

    Huomautus: Kaava toimii erityisestä logiikastaan johtuen seuraavin varauksin:

    • Alueen, josta etsit suurinta arvoa, on sisällettävä vain numeroita. Jos siinä on tekstiarvoja, palautetaan virhe #VALUE!.
    • Kaava ei voi arvioida "ei yhtä suuri kuin nolla" -ehtoa negatiivisessa datajoukossa. Jos haluat löytää maksimiarvon, jossa nollat jätetään huomiotta, käytä joko MAX IF-kaavaa tai MAXIFS-funktiota.

    Excel MAX IF -kaava OR-logiikalla

    Löytääksesi maksimiarvon, kun kaikki määritetyistä ehdoista täyttyy, käytä jo tuttua array MAX IF -kaavaa Boolen logiikalla, mutta lisää ehdot sen sijaan, että kertoisit ne.

    {=MAX(IF((( kriteerit_alue1 = kriteerit1 ) + ( kriteerit_alue2 = kriteerit2 ), max_range ))}

    Vaihtoehtoisesti voit käyttää seuraavaa kaavaa, joka ei ole sarjamuotoinen:

    =SUMPRODUCT(MAX((((( kriteerit_alue1 = kriteerit1 ) + ( kriteerit_alue2 = kriteerit2 )) * max_range ))

    Lasketaan esimerkiksi paras tulos kierroksilla 2 ja 3. Huomaa, että Excel-kielessä tehtävä on muotoiltu toisin: palauta maksimiarvo, jos kierros on joko 2 tai 3.

    Kun kierrokset on lueteltu kohdissa B2:B10, tulokset kohdissa C2:C10 ja kriteerit kohdissa F1 ja H1, kaava on seuraava:

    =MAX(IF((B2:B10=F1) + (B2:B10=H1), C2:C10)))

    Syötä kaava painamalla Ctrl + Shift + Enter -näppäinyhdistelmää, ja saat tämän tuloksen:

    Samoilla ehdoilla maksimiarvo voidaan myös löytää käyttämällä tätä ei-monimuuttujakaavaa:

    =SUMPRODUCT(MAX(((B2:B10=F1) + (B2:B10=H1)) * C2:C10)))

    Tässä tapauksessa meidän on kuitenkin korvattava kaikki sarakkeen C "x"-arvot nollilla, koska SUMPRODUCT MAX toimii vain numeeristen tietojen kanssa:

    Miten nämä kaavat toimivat

    Joukkokaava toimii täsmälleen samalla tavalla kuin MAX IF AND-logiikalla, paitsi että yhdistät kriteerit käyttämällä yhteenlaskuoperaatiota kertolaskun sijaan. Joukkokaavoissa yhteenlasku toimii OR-operaattorina:

    Kahden TRUE- ja FALSE-matriisin (jotka ovat tulosta B2:B10-arvojen tarkistamisesta F1:n ja H1:n kriteereihin nähden) yhteenlaskeminen tuottaa 1:n ja 0:n matriisin, jossa 1 edustaa kohteita, joiden osalta jompikumpi ehto on TRUE, ja 0 edustaa kohteita, joiden osalta molemmat ehdot ovat FALSE. Tämän tuloksena IF-funktio "pitää" kaikki kohteet C2:C10:ssä ( value_if_true ), joiden kohdalla jokin ehto on TODELLINEN (1); loput kohteet korvataan FALSE:lla, koska ehdon value_if_false argumenttia ei ole määritetty.

    Ei-joukko kaava toimii samalla tavalla. Erona on se, että IF:n loogisen testin sijasta kerrotaan 1:n ja 0:n joukon elementit pituushyppytulosten joukon (C2:C10) elementeillä vastaavissa paikoissa. Näin mitätöidään ne elementit, jotka eivät täytä mitään ehtoa (joiden ensimmäisessä joukossa on 0), ja säilytetään ne elementit, jotka täyttävät yhden ehdoista (joiden ensimmäisessä joukossa on 1).array).

    MAXIFS - helppo tapa löytää korkein arvo ehdoilla

    Excel 2019, 2021 ja Excel 365 -ohjelmien käyttäjät eivät enää tarvitse kesyttää matriiseja rakentaakseen oman MAX IF -kaavansa. Nämä Excel-versiot tarjoavat kauan odotetun MAXIFS-funktion, jonka avulla suurimman arvon löytäminen ehdoilla on lastenleikkiä.

    MAXIFS:n ensimmäiseen argumenttiin syötetään alue, josta maksimiarvo on löydettävä (tässä tapauksessa D2:D16), ja seuraaviin argumentteihin voidaan syöttää enintään 126 alue/kriteeriparia. Esimerkiksi:

    =MAXIFS(D2:D16, B2:B16, G1, C2:C16, G2)

    Kuten alla olevasta kuvakaappauksesta näkyy, tämä yksinkertainen kaava käsittelee ongelmitta sekä numeerisia että tekstiarvoja sisältävän alueen:

    Yksityiskohtaisia tietoja tästä funktiosta on Excelin MAXIFS-funktiossa ja kaavaesimerkeissä.

    Näin voit löytää maksimiarvon ehtojen avulla Excelissä. Kiitän sinua lukemisesta ja toivottavasti tapaamme blogissamme ensi viikolla!

    Käytännön työkirja ladattavissa

    Excel MAX IF -kaavan esimerkkejä (.xlsx-tiedosto)

    Michael Brown on omistautunut teknologian harrastaja, jolla on intohimo yksinkertaistaa monimutkaisia ​​prosesseja ohjelmistotyökalujen avulla. Yli vuosikymmenen kokemuksella teknologia-alalta hän on hionut taitojaan Microsoft Excelissä ja Outlookissa sekä Google Sheetsissä ja Docsissa. Michaelin blogi on omistettu jakamaan tietojaan ja asiantuntemustaan ​​muiden kanssa, ja se tarjoaa helposti seurattavia vinkkejä ja opetusohjelmia tuottavuuden ja tehokkuuden parantamiseksi. Olitpa kokenut ammattilainen tai aloittelija, Michaelin blogi tarjoaa arvokkaita oivalluksia ja käytännön neuvoja, joiden avulla saat kaiken irti näistä tärkeistä ohjelmistotyökaluista.