Excel MAX IF formula upang mahanap ang pinakamalaking halaga na may mga kundisyon

  • Ibahagi Ito
Michael Brown

Ang artikulo ay nagpapakita ng ilang magkakaibang paraan upang makuha ang max na halaga sa Excel batay sa isa o ilang kundisyon na iyong tinukoy.

Sa aming nakaraang tutorial, tiningnan namin ang mga karaniwang gamit ng MAX function na idinisenyo upang ibalik ang pinakamalaking bilang sa isang dataset. Sa ilang mga sitwasyon, gayunpaman, maaaring kailanganin mong mag-drill down pa sa iyong data upang mahanap ang max na halaga batay sa ilang pamantayan. Magagawa ito sa pamamagitan ng paggamit ng ilang iba't ibang mga formula, at ipinapaliwanag ng artikulong ito ang lahat ng posibleng paraan.

    Excel MAX IF formula

    Hanggang kamakailan lamang, ang Microsoft Excel ay walang built-in na MAX IF function upang makuha ang maximum na halaga batay sa mga kundisyon. Sa pagpapakilala ng MAXIFS sa Excel 2019, magagawa namin ang conditional max sa madaling paraan.

    Sa Excel 2016 at mga naunang bersyon, kailangan mo pa ring gumawa ng sarili mong array formula sa pamamagitan ng pagsasama-sama ng MAX function na may IF statement:

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

    Upang makita kung paano itong generic na MAX KUNG gumagana ang formula sa totoong data, mangyaring isaalang-alang ang sumusunod na halimbawa. Kumbaga, mayroon kang isang talahanayan na may mga resulta ng mahabang pagtalon ng ilang mga mag-aaral. Kasama sa talahanayan ang data para sa tatlong round, at hinahanap mo ang pinakamahusay na resulta ng isang partikular na atleta, sabi ni Jacob. Gamit ang mga pangalan ng mag-aaral sa A2:A10 at mga distansya sa C2:C10, ganito ang hugis ng formula:

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

    Pakitandaan na isang array formuladapat palaging ipasok sa pamamagitan ng pagpindot sa Ctrl + Shift + Enter key nang sabay-sabay. Bilang resulta, awtomatiko itong napapalibutan ng mga kulot na bracket tulad ng ipinapakita sa screenshot sa ibaba (hindi gagana ang manu-manong pag-type ng mga braces!).

    Ako mga workheet sa totoong buhay, mas maginhawang ilagay ang pamantayan sa ilang cell, upang madali mong baguhin ang kundisyon nang hindi binabago ang formula. Kaya, itina-type namin ang gustong pangalan sa F1 at makuha ang sumusunod na resulta:

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

    Paano gumagana ang formula na ito

    Sa lohikal na pagsubok ng IF function, inihambing namin ang listahan ng mga pangalan (A2:A10) sa target na pangalan (F1). Ang resulta ng operasyong ito ay isang array ng TRUE at FALSE, kung saan ang mga TRUE value ay kumakatawan sa mga pangalan na tumutugma sa target na pangalan (Jacob):

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

    Para sa value_ if_true argumento, ibinibigay namin ang mga resulta ng long jump (C2:C10), kaya kung ang lohikal na pagsubok ay nagsusuri sa TRUE, ibabalik ang katumbas na numero mula sa column C. Ang value_ if_false argument ay tinanggal, ibig sabihin ay magkakaroon lamang ng FALSE value kung saan hindi natutugunan ang kundisyon:

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

    Ang array na ito ay ipinadala sa MAX function, na ibinabalik ang maximum na bilang na binabalewala ang mga FALSE value.

    Tip. Upang makita ang mga panloob na array na tinalakay sa itaas, piliin ang kaukulang bahagi ng formula sa iyong worksheet at pindutin ang F9 key. Upang lumabas sa formula evaluation mode, pindutin ang Esc key.

    MAX IF formula na may maramihangpamantayan

    Sa sitwasyon kung kailan kailangan mong hanapin ang max na halaga batay sa higit sa isang kundisyon, maaari mong:

    Gumamit ng mga nested IF na pahayag upang magsama ng karagdagang pamantayan:

    {=MAX( IF( criteria_range1 = criteria1 , IF( criteria_range2 = criteria2 , max_range )))}

    O kaya ay pangasiwaan ang maramihang pamantayan sa pamamagitan ng paggamit ng multiplication operation:

    {=MAX(IF(( criteria_range1 = criteria1 ) * ( criteria_range2 = criteria2 ), max_range ))}

    Sabihin nating nasa iisang table ang mga resulta ng mga lalaki at babae at gusto mong mahanap ang pinakamahabang pagtalon sa mga babae sa round 3. Para magawa ito , ipinasok namin ang unang criterion (babae) sa G1, ang pangalawang criterion (3) sa G2, at ginagamit ang mga sumusunod na formula para makuha ang max na value:

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

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

    Dahil pareho ang array formula, mangyaring tandaan na pindutin ang Ctrl + Shift + Enter upang kumpletuhin ang mga ito nang tama.

    Tulad ng ipinapakita sa screenshot sa ibaba, ang mga formula ay gumagawa ng parehong resulta, kaya kung alin ang gagamitin ay isang bagay sayo iyong personal na kagustuhan. Para sa akin, ang formula na may Boolean logic ay mas madaling basahin at buuin – ito ay nagbibigay-daan sa pagdaragdag ng maraming kundisyon hangga't gusto mo nang walang nesting karagdagang IF function.

    Paano gumagana ang mga formula na ito

    Ang unang formula ay gumagamit ng dalawang nested IF function upang suriin ang dalawang pamantayan. Sa lohikal na pagsubok ng unang IF na pahayag, inihahambing namin ang mga halaga sa hanay ng Kasarian(B2:B16) na may criterion sa G1 ("Babae"). Ang resulta ay isang array ng TRUE at FALSE value kung saan ang TRUE ay kumakatawan sa data na tumutugma sa criterion:

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

    Sa katulad na paraan, sinusuri ng pangalawang IF function ang mga value sa Round column (C2 :C16) laban sa criterion sa G2.

    Para sa argumentong value_if_true sa pangalawang IF statement, ibinibigay namin ang mga resulta ng long jump (D2:D16), at sa ganitong paraan makuha namin ang mga item na may TRUE sa unang dalawang array sa mga katumbas na posisyon (ibig sabihin, ang mga item kung saan ang kasarian ay "babae" at bilog ay 3):

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

    Ang huling array na ito ay mapupunta sa MAX function at ibinabalik nito ang pinakamalaking numero.

    Sinusuri ng pangalawang formula ang parehong mga kundisyon sa loob ng iisang lohikal na pagsubok at gumagana ang multiplication operation tulad ng AND operator:

    Kapag ginamit ang TRUE at FALSE value sa anumang arithmetic operation, ang mga ito ay na-convert sa 1's at 0's, ayon sa pagkakabanggit. At dahil ang multiply sa 0 ay palaging nagbibigay ng zero, ang resultang array ay may 1 lamang kapag ang lahat ng kundisyon ay TOTOO. Ang array na ito ay sinusuri sa lohikal na pagsubok ng IF function, na nagbabalik ng mga distansya na tumutugma sa 1 (TRUE) na mga elemento.

    MAX IF na walang array

    Maraming mga user ng Excel, kabilang ako, ay may pagkiling laban sa mga array formula at subukang alisin ang mga ito hangga't maaari. Sa kabutihang-palad, ang Microsoft Excel ay may ilang mga function na pinangangasiwaan ang array nang katutubong, at maaari naming gamitin ang isang mga naturang function, katulad ng SUMPRODUCT, bilang uri ng "wrapper" sa paligid ng MAX.

    Ang generic na MAX IF formula na walang array ay ang sumusunod:

    =SUMPRODUCT(MAX(( criteria_range1 = criteria1 ) * ( criteria_range2 = criteria2 ) * max_range ))

    Natural, maaari kang magdagdag ng higit pang range/criteria pairs kung kailangan.

    Upang makita ang formula sa pagkilos, gagamitin namin ang data mula sa nakaraang halimbawa. Ang layunin ay makuha ang maximum na pagtalon ng isang babaeng atleta sa round 3:

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

    Ang formula na ito ay nakikipagkumpitensya sa isang normal na Enter keystroke at nagbabalik ng parehong resulta tulad ng array MAX IF formula:

    Sa mas malapitang pagtingin sa screenshot sa itaas, mapapansin mo na ang mga di-wastong jump na may markang "x" sa mga nakaraang halimbawa ay mayroon na ngayong 0 value sa row 3, 11 at 15 , at ipinapaliwanag ng susunod na seksyon kung bakit.

    Paano gumagana ang formula na ito

    Tulad ng MAX IF formula, sinusuri namin ang dalawang pamantayan sa pamamagitan ng paghahambing ng bawat halaga sa Kasarian (B2:B16) at Round ( C2:C16) na mga column na may pamantayan sa mga cell G1 at G2. Ang resulta ay dalawang array ng TRUE at FALSE value. Ang pagpaparami ng mga elemento ng array sa parehong mga posisyon ay nagko-convert ng TRUE at FALSE sa 1 at 0, ayon sa pagkakabanggit, kung saan ang 1 ay kumakatawan sa mga item na nakakatugon sa parehong pamantayan. Ang ikatlong multiplied array ay naglalaman ng mga resulta ng long jump (D2:D16). At dahil ang pag-multiply sa 0 ay nagbibigay ng zero, tanging ang mga item na mayroong 1 (TRUE) sa mga kaukulang posisyonsurvive:

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

    Kung sakaling ang max_range ay naglalaman ng anumang text value, ibabalik ng multiplication operation ang #VALUE error dahil kung saan ang buong formula ay hindi gagana.

    Kinukuha ito ng MAX function mula rito at ibinabalik ang pinakamalaking bilang na nakakatugon sa mga tinukoy na kundisyon. Ang nagreresultang array na binubuo ng isang elemento {4.63} ay napupunta sa SUMPRODUCT function at ito ay naglalabas ng max na numero sa isang cell.

    Tandaan. Dahil sa partikular na lohika nito, gumagana ang formula sa mga sumusunod na caveat:

    • Ang hanay kung saan mo hahanapin ang pinakamataas na halaga ay dapat na naglalaman lamang ng mga numero. Kung mayroong anumang mga halaga ng teksto, isang #VALUE! naibalik ang error.
    • Hindi masusuri ng formula ang kundisyon na "not equal to zero" sa isang negatibong set ng data. Upang mahanap ang max na value na binabalewala ang mga zero, gumamit ng MAX IF formula o MAXIFS function.

    Excel MAX IF formula na may OR logic

    Upang mahanap ang max na value kapag anumang ng mga tinukoy na kundisyon ay natutugunan, gamitin ang pamilyar na array MAX IF formula na may Boolean logic, ngunit idagdag ang mga kundisyon sa halip na i-multiply ang mga ito.

    {=MAX(IF(( criteria_range1 = criteria1 ) + ( criteria_range2 = criteria2 ), max_range ))}

    Bilang alternatibo, maaari mong gamitin ang sumusunod na non-array formula :

    =SUMPRODUCT(MAX((( criteria_range1 = criteria1 ) + ( criteria_range2 = criteria2 )) * max_range ))

    Bilang halimbawa, mag-ehersisyo tayoang pinakamahusay na resulta sa mga round 2 at 3. Mangyaring bigyang-pansin na sa wikang Excel, ang gawain ay nabuo sa ibang paraan: ibalik ang max na halaga kung ang round ay alinman sa 2 o 3.

    Sa mga round na nakalista sa B2:B10 , ang mga resulta sa C2:C10 at pamantayan sa F1 at H1, ang formula ay sumusunod:

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

    Ipasok ang formula sa pamamagitan ng pagpindot sa Ctrl + Shift + Enter key na kumbinasyon at makakakuha ka ang resultang ito:

    Ang max na value na may parehong mga kundisyon ay maaari ding matagpuan sa pamamagitan ng paggamit sa non-array na formula na ito:

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

    Gayunpaman, kailangan naming palitan ang lahat ng "x" na value sa column C ng mga zero sa kasong ito dahil gumagana lang ang SUMPRODUCT MAX sa numeric data:

    Paano gumagana ang mga formula na ito

    Ang array formula ay gumagana nang eksakto sa parehong paraan tulad ng MAX IF sa AND logic maliban na sumali ka sa pamantayan sa pamamagitan ng paggamit ng operasyon sa pagdaragdag sa halip na multiplikasyon. Sa mga array formula, gumagana ang karagdagan bilang OR operator:

    Ang pagdaragdag ng dalawang array ng TRUE at FALSE (na nagreresulta mula sa pagsuri sa mga value sa B2:B10 laban sa pamantayan sa F1 at H1) ay gumagawa ng array ng 1 at 0 kung saan ang 1 ay kumakatawan sa mga item kung saan ang alinman sa kundisyon ay TRUE at 0 ay kumakatawan sa mga item kung saan ang parehong mga kundisyon ay MALI. Bilang resulta, ang function na IF ay "pinapanatili" ang lahat ng mga item sa C2:C10 ( value_if_true ) kung saan ang anumang kundisyon ay TRUE (1); ang natitirang mga bagay ay pinapalitan ng MALI dahil angAng argument na value_if_false ay hindi tinukoy.

    Ang non-array na formula ay gumagana sa katulad na paraan. Ang kaibahan ay sa halip na lohikal na pagsubok ng IF, i-multiply mo ang mga elemento ng array ng 1 at 0 sa mga elemento ng hanay ng mga resulta ng long jump (C2:C10) sa mga kaukulang posisyon. Ito ay nagpapawalang-bisa sa mga item na hindi nakakatugon sa anumang kundisyon (may 0 sa unang array) at pinapanatili ang mga item na nakakatugon sa isa sa mga kundisyon (may 1 sa unang array).

    MAXIFS – madaling paraan upang mahanap ang pinakamataas value na may mga kundisyon

    Ang mga user ng Excel 2019, 2021 at Excel 365 ay malaya sa problema ng pag-amo ng mga arrays upang bumuo ng sarili nilang MAX IF formula. Ang mga bersyon ng Excel na ito ay nagbibigay ng pinakahihintay na MAXIFS function na ginagawang paghahanap ng pinakamalaking halaga na may mga kundisyon sa paglalaro ng bata.

    Sa unang argument ng MAXIFS, ilalagay mo ang hanay kung saan dapat mahanap ang maximum na halaga (D2: D16 sa aming kaso), at sa mga kasunod na argumento maaari kang magpasok ng hanggang 126 na pares ng saklaw/pamantayan. Halimbawa:

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

    Tulad ng ipinapakita sa screenshot sa ibaba, ang simpleng formula na ito ay walang problema sa pagpoproseso ng hanay na naglalaman ng parehong mga numeric at text value:

    Para sa detalyadong impormasyon tungkol sa function na ito, pakitingnan ang Excel MAXIFS function na may mga halimbawa ng formula.

    Ganyan ka makakahanap ng max na value na may mga kundisyon sa Excel. Salamat sa pagbabasa at sana ay makita kita sa aming blog sa susunodlinggo!

    Magsanay ng workbook para sa pag-download

    Mga halimbawa ng formula ng Excel MAX IF (.xlsx file)

    Si Michael Brown ay isang dedikadong mahilig sa teknolohiya na may hilig sa pagpapasimple ng mga kumplikadong proseso gamit ang mga tool sa software. Sa higit sa isang dekada ng karanasan sa industriya ng tech, hinasa niya ang kanyang mga kasanayan sa Microsoft Excel at Outlook, pati na rin ang Google Sheets at Docs. Ang blog ni Michael ay nakatuon sa pagbabahagi ng kanyang kaalaman at kadalubhasaan sa iba, na nagbibigay ng madaling sundan na mga tip at mga tutorial para sa pagpapabuti ng pagiging produktibo at kahusayan. Isa ka mang batikang propesyonal o baguhan, nag-aalok ang blog ni Michael ng mahahalagang insight at praktikal na payo para masulit ang mahahalagang software tool na ito.