Tartalomjegyzék
A cikk néhány különböző módszert mutat be arra, hogy a maximális értéket az Excelben egy vagy több megadott feltétel alapján kapja meg.
Az előző bemutatóban megnéztük a MAX függvény általános felhasználási módjait, amely arra szolgál, hogy visszaadja a legnagyobb számot egy adathalmazban. Bizonyos helyzetekben azonban szükség lehet arra, hogy tovább mélyítsünk az adatokban, hogy megtaláljuk a maximális értéket bizonyos kritériumok alapján. Ezt néhány különböző képlet segítségével lehet megtenni, és ez a cikk az összes lehetséges módot ismerteti.
Excel MAX IF formula
A közelmúltig a Microsoft Excel nem rendelkezett beépített MAX IF függvénnyel a maximális érték feltételek alapján történő meghatározásához. A MAXIFS bevezetésével az Excel 2019-ben a feltételes maxot egyszerű módon végezhetjük el.
Az Excel 2016 és korábbi verziókban még mindig sajátot kell létrehoznia. tömb képlet a MAX függvény és egy IF utasítás kombinálásával:
{=MAX(IF( criteria_range = kritériumok , max_range ))}Hogy lássuk, hogyan működik ez az általános MAX IF formula valós adatokon, nézzük meg a következő példát. Tegyük fel, hogy van egy táblázatunk több diák távolugró eredményeivel. A táblázat három forduló adatait tartalmazza, és egy adott sportoló, mondjuk Jacob legjobb eredményét keressük. A diákok nevei az A2:A10 és a távolságok a C2:C10 mezőben vannak, a formula a következő formát ölti:
=MAX(IF(A2:A10="Jacob", C2:C10))
Ne feledje, hogy a tömbképletet mindig a Ctrl + Shift + Enter billentyűk egyidejű lenyomásával kell beírni. Ennek eredményeképpen a képletet automatikusan körülveszi a következő képernyőképen látható módon (a zárójelek kézzel történő beírása nem fog működni!).
A valós munkalapokon sokkal kényelmesebb, ha a kritériumot valamelyik cellába írjuk be, így a feltétel könnyen módosítható a képlet módosítása nélkül. Tehát az F1-be írjuk be a kívánt nevet, és a következő eredményt kapjuk:
=MAX(IF(A2:A10=F1, C2:C10))
Hogyan működik ez a képlet
Az IF függvény logikai tesztjében a nevek listáját (A2:A10) összehasonlítjuk a célnévvel (F1). A művelet eredménye egy TRUE és FALSE tömb, ahol az TRUE értékek a célnévvel (Jacob) megegyező neveket jelentik:
{HAMIS;HAMIS;HAMIS;HAMIS;IGAZ;IGAZ;IGAZ;HAMIS;HAMIS;HAMIS;HAMIS;HAMIS}
A value_ if_true argumentummal megadjuk a távolugrás eredményeit (C2:C10), így ha a logikai teszt TRUE értéket ad, akkor a C oszlopból a megfelelő számot kapjuk vissza. value_ if_false argumentum elhagyása esetén a feltétel nem teljesülése esetén FALSE értéket kap:
{FALSE;FALSE;FALSE;FALSE;5.48;5.42;5.57;FALSE;FALSE;FALSE;FALSE;FALSE}
Ezt a tömböt a MAX függvénybe tápláljuk, amely a FALSE értékek figyelmen kívül hagyásával a maximális számot adja vissza.
Tipp: A fent tárgyalt belső tömbök megjelenítéséhez jelölje ki a képlet megfelelő részét a munkalapon, és nyomja meg az F9 billentyűt. A képletkiértékelési módból való kilépéshez nyomja meg az Esc billentyűt.
MAX IF formula több kritériummal
Abban az esetben, ha egynél több feltétel alapján kell megtalálnia a maximális értéket, akkor vagy:
Használjon beágyazott IF utasításokat további kritériumok felvételéhez:
{=MAX(IF( criteria_range1 = kritériumok1 , IF( criteria_range2 = kritérium2 , max_range )))}Vagy kezelhet több kritériumot a szorzás művelet használatával:
{=MAX(IF((( criteria_range1 = kritériumok1 ) * ( criteria_range2 = kritérium2 ), max_range ))}Tegyük fel, hogy a fiúk és a lányok eredményei egy táblázatban vannak, és a 3. fordulóban a lányok között szeretnénk megtalálni a leghosszabb ugrást. Ehhez az első kritériumot (női) a G1-be, a második kritériumot (3) a G2-be írjuk, és a következő képletekkel kiszámítjuk a maximális értéket:
=MAX(IF(B2:B16=G1, IF(C2:C16=G2, D2:D16)))
=MAX(IF((B2:B16=G1)*(C2:C16=G2), D2:D16))
Mivel mindkettő tömbképlet, ne feledje, hogy a Ctrl + Shift + Enter billentyűkombinációt kell megnyomnia a helyes kitöltéshez.
Amint az alábbi képernyőképen látható, a képletek ugyanazt az eredményt adják, így az, hogy melyiket használjuk, személyes preferencia kérdése. Számomra a Boole logikájú képletet könnyebb olvasni és felépíteni - annyi feltételt adhatunk hozzá, amennyit csak akarunk, további IF függvények egymásba ágyazása nélkül.
Hogyan működnek ezek a képletek
Az első képlet két egymásba ágyazott IF függvényt használ két kritérium kiértékelésére. Az első IF utasítás logikai tesztjében összehasonlítjuk a Nem oszlopban (B2:B16) lévő értékeket a G1-ben lévő kritériummal ("Nő"). Az eredmény egy TRUE és FALSE értékekből álló tömb, ahol a TRUE a kritériumnak megfelelő adatokat jelenti:
{HAMIS; HAMIS; HAMIS; HAMIS; HAMIS; IGAZ; IGAZ; IGAZ; HAMIS; HAMIS; HAMIS; HAMIS; HAMIS; HAMIS; HAMIS; HAMIS; HAMIS; HAMIS; IGAZ; IGAZ; IGAZ; IGAZ; IGAZ}
Hasonló módon a második IF függvény a Round oszlopban (C2:C16) szereplő értékeket a G2-ben szereplő kritériummal összevetve ellenőrzi.
A value_if_true argumentummal a második IF utasításban megadjuk a távolugrás eredményeit (D2:D16), és így megkapjuk azokat az elemeket, amelyeknek az első két tömbben TRUE van a megfelelő pozíciókban (azaz azokat az elemeket, ahol a nem "nő" és a kör 3):
{HAMIS; HAMIS; HAMIS; HAMIS; HAMIS; HAMIS; HAMIS; HAMIS; 4.63; HAMIS; HAMIS; HAMIS; HAMIS; HAMIS; HAMIS; HAMIS; HAMIS; HAMIS; HAMIS; HAMIS; HAMIS; HAMIS; 4.52}
Ez a végső tömb a MAX függvényhez kerül, és az a legnagyobb számot adja vissza.
A második formula ugyanazokat a feltételeket egyetlen logikai teszten belül értékeli ki, és a szorzás művelete az ÉS operátorhoz hasonlóan működik:
Amikor a TRUE és FALSE értékeket bármilyen aritmetikai műveletben használjuk, akkor 1-es és 0-s értékekké alakítjuk őket. És mivel a 0-val való szorzás mindig nullát ad, a kapott tömb csak akkor 1-es, ha minden feltétel TRUE. Ezt a tömböt az IF függvény logikai tesztje értékeli ki, amely az 1 (TRUE) elemeknek megfelelő távolságokat adja vissza.
MAX IF tömb nélkül
Sok Excel-felhasználó, köztük én is, előítéletes a tömbképletekkel szemben, és ahol csak lehet, igyekszik megszabadulni tőlük. Szerencsére a Microsoft Excel rendelkezik néhány olyan függvénnyel, amely natívan kezeli a tömböket, és az egyik ilyen függvényt, nevezetesen a SUMPRODUCT-ot, egyfajta "burkolatként" használhatjuk a MAX körül.
Az általános MAX IF formula tömb nélkül a következő:
=SUMPRODUCT(MAX(( criteria_range1 = kritériumok1 ) * ( criteria_range2 = kritérium2 ) * max_range ))Természetesen szükség esetén további tartomány/kritérium párokat is hozzáadhat.
Hogy a képletet működés közben is láthassuk, az előző példában szereplő adatokat fogjuk használni. A cél egy női sportoló maximális ugrásainak kiszámítása a 3. fordulóban:
=SUMPRODUCT(MAX(((B2:B16=G1) * (C2:C16=G2) * (D2:D16))))
Ez a képlet egy normál Enter billentyűleütéssel versenyez, és ugyanazt az eredményt adja vissza, mint a tömb MAX IF képlet:
Ha közelebbről megnézzük a fenti képernyőképet, észrevehetjük, hogy az előző példákban "x"-szel jelölt érvénytelen ugrások a 3., 11. és 15. sorban most 0 értékkel rendelkeznek, és a következő részben megmagyarázzuk, hogy miért.
Hogyan működik ez a képlet
A MAX IF képlethez hasonlóan két kritériumot értékelünk ki úgy, hogy a Gender (B2:B16) és a Round (C2:C16) oszlopok egyes értékeit összehasonlítjuk a G1 és G2 cellákban lévő kritériumokkal. Az eredmény két TRUE és FALSE értékekből álló tömb lesz. A tömbök elemeinek azonos pozíciókban történő szorzása a TRUE és FALSE értékeket 1-re és 0-ra alakítja, ahol az 1 azokat az elemeket jelenti, amelyek mindkét kritériumnak megfelelnek. A harmadik szorzotttömb tartalmazza a távolugrás eredményeit (D2:D16). És mivel a 0-val való szorzás nullát ad, csak azok az elemek maradnak meg, amelyeknek a megfelelő pozíciójában 1 (TRUE) van:
{0; 0; 0; 0; 0; 4.63; 0; 0; 0; 0; 0; 0; 0; 0; 4.52}
Abban az esetben, ha max_range bármilyen szöveges értéket tartalmaz, a szorzási művelet #VALUE hibát ad vissza, ami miatt az egész formula nem fog működni.
A MAX függvény innen veszi át, és a megadott feltételeknek megfelelő legnagyobb számot adja vissza. Az így kapott, egyetlen {4,63} elemből álló tömb a SUMPRODUCT függvényhez kerül, és az kiadja a maximális számot egy cellában.
Megjegyzés: A képlet sajátos logikája miatt a következő fenntartásokkal működik:
- A tartomány, amelyben a legmagasabb értéket keresi, csak számokat tartalmazhat. Ha szöveges értékek is vannak, a rendszer #VALUE! hibát küld vissza.
- A képlet nem tudja kiértékelni a "nem egyenlő nullával" feltételt negatív adathalmazban. A nullákat figyelmen kívül hagyó maximális érték megtalálásához használjon MAX IF képletet vagy MAXIFS függvényt.
Excel MAX IF formula OR logikával
A maximális érték megtalálása, amikor bármilyen a megadott feltételek egyike teljesül, használja a már ismert tömb MAX IF képletet a Boole-logikával, de a feltételek szorzása helyett összeadja a feltételeket.
{=MAX(IF((( criteria_range1 = kritériumok1 ) + ( criteria_range2 = kritérium2 ), max_range ))}Alternatívaként használhatja a következő, nem tömbös képletet is:
=SUMPRODUCT(MAX((((( criteria_range1 = kritériumok1 ) + ( criteria_range2 = kritérium2 )) * max_range ))Példaként dolgozzuk ki a legjobb eredményt a 2. és a 3. fordulóban. Figyeljünk arra, hogy az Excel nyelvén a feladat másképp van megfogalmazva: a maximális értéket adja vissza, ha a forduló 2 vagy 3.
A B2:B10-ben felsorolt fordulókkal, a C2:C10-ben felsorolt eredményekkel és az F1 és H1-ben felsorolt kritériumokkal a képlet a következő:
=MAX(IF((B2:B10=F1) + (B2:B10=H1), C2:C10))
Írja be a képletet a Ctrl + Shift + Enter billentyűkombinációval, és ezt az eredményt kapja:
A maximális értéket ugyanezekkel a feltételekkel szintén meg lehet találni ezzel a nem tömbösített képlettel:
=SUMPRODUCT(MAX(((B2:B10=F1) + (B2:B10=H1)) * C2:C10)))
Ebben az esetben azonban a C oszlopban az összes "x" értéket nullával kell helyettesítenünk, mivel a SUMPRODUCT MAX csak numerikus adatokkal működik:
Hogyan működnek ezek a képletek
A tömbképlet pontosan ugyanúgy működik, mint az ÉS logikájú MAX IF, azzal a különbséggel, hogy a kritériumokat szorzás helyett összeadással kapcsolja össze. A tömbképletekben az összeadás úgy működik, mint a VAGY operátor:
A két TRUE és FALSE tömb összeadásával (amelyek a B2:B10 értékek F1 és H1 kritériumok alapján történő ellenőrzéséből származnak) egy 1-es és 0-s tömb jön létre, ahol az 1 jelöli azokat az elemeket, amelyek esetében bármelyik feltétel TRUE, a 0 pedig azokat, amelyek esetében mindkét feltétel FALSE. Ennek eredményeképpen az IF függvény "megtartja" a C2:C10 összes elemét ( value_if_true ), amelyeknél bármelyik feltétel TRUE (1); a többi elemet FALSE-vel helyettesítjük, mert a value_if_false argumentum nincs megadva.
A nem tömbös formula hasonlóan működik. A különbség az, hogy az IF logikai tesztje helyett az 1-es és 0-s tömb elemeit megszorozzuk a távolugrás eredményei tömb (C2:C10) megfelelő pozíciókban lévő elemeivel. Ez semmissé teszi azokat az elemeket, amelyek nem felelnek meg egyik feltételnek sem (0 van az első tömbben), és megtartja azokat az elemeket, amelyek megfelelnek valamelyik feltételnek (1 van az első tömbben).tömb).
MAXIFS - egyszerű módja a legmagasabb érték megtalálásának feltételekkel
Az Excel 2019, 2021 és az Excel 365 felhasználói megszabadulnak a tömbök megszelídítésének gondjától, hogy saját MAX IF képletet alkossanak. Az Excel ezen verziói biztosítják a régóta várt MAXIFS funkciót, amely a legnagyobb érték megtalálását a feltételekkel gyerekjátékká teszi.
A MAXIFS első argumentumában azt a tartományt adja meg, amelyben a maximális értéket meg kell találni (esetünkben D2:D16), a további argumentumokban pedig legfeljebb 126 tartomány/kritérium párost adhat meg. Például:
=MAXIFS(D2:D16, B2:B16, G1, C2:C16, G2)
Amint az alábbi képernyőképen látható, ez az egyszerű képlet nem okoz gondot a numerikus és szöveges értékeket egyaránt tartalmazó tartomány feldolgozásával:
A funkcióval kapcsolatos részletes információkért tekintse meg az Excel MAXIFS funkciót és a képletpéldákat.
Így találhatod meg a maximális értéket feltételekkel az Excelben. Köszönöm, hogy elolvastad, és remélem, jövő héten találkozunk a blogon!
Gyakorlati munkafüzet letölthető
Excel MAX IF formula példák (.xlsx fájl)