Змест
У артыкуле паказана некалькі розных спосабаў атрымаць максімальнае значэнне ў Excel на аснове адной або некалькіх умоў, якія вы ўказваеце.
У нашым папярэднім уроку мы разгледзелі агульныя спосабы выкарыстання функцыі MAX, якая прызначана для вяртання найбольшага ліку ў наборы даных. Аднак у некаторых сітуацыях вам, магчыма, спатрэбіцца паглыбіцца ў свае даныя, каб знайсці максімальнае значэнне на аснове пэўных крытэрыяў. Гэта можна зрабіць з дапамогай некалькіх розных формул, і ў гэтым артыкуле тлумачацца ўсе магчымыя спосабы.
Формула Excel MAX IF
Да нядаўняга часу ў Microsoft Excel не было убудаваная функцыя MAX IF для атрымання максімальнага значэння ў залежнасці ад умоў. З увядзеннем MAXIFS у Excel 2019 мы можам зрабіць умоўнае максімум простым спосабам.
У Excel 2016 і больш ранніх версіях вам усё роўна трэба стварыць уласную формулу масіва , аб'яднаўшы MAX функцыя з аператарам IF:
{=MAX(IF( criteria_range= criteria, max_range))}Каб убачыць, як гэты агульны MAX КАЛІ формула працуе на рэальных дадзеных, разгледзьце наступны прыклад. Дапусцім, у вас ёсць табліца з вынікамі скачкоў у даўжыню некалькіх студэнтаў. Табліца змяшчае дадзеныя трох тураў, і вы шукаеце лепшы вынік канкрэтнага спартсмена, скажа Якаў. З імёнамі вучняў у A2:A10 і адлегласцямі ў C2:C10 формула прымае такую форму:
=MAX(IF(A2:A10="Jacob", C2:C10))
Калі ласка, майце на ўвазе, што формула масівазаўсёды трэба ўводзіць адначасовым націсканнем клавіш Ctrl + Shift + Enter. У выніку ён аўтаматычна заключаны ў фігурныя дужкі, як паказана на скрыншоце ніжэй (набраць дужкі ўручную не атрымаецца!).
На працоўных аркушах у рэальным жыцці зручней уводзіць крытэрый у некаторыя вочка, так што вы можаце лёгка змяніць умову без змены формулы. Такім чынам, мы ўводзім патрэбнае імя ў F1 і атрымліваем наступны вынік:
=MAX(IF(A2:A10=F1, C2:C10))
Як працуе гэтая формула
У лагічным тэст функцыі IF, мы параўноўваем спіс імёнаў (A2:A10) з мэтавым імем (F1). Вынікам гэтай аперацыі з'яўляецца масіў TRUE і FALSE, дзе значэнні TRUE прадстаўляюць імёны, якія адпавядаюць мэтаваму імені (Jacob):
{FALSE;FALSE;FALSE;TRUE;TRUE;TRUE;FALSE;FALSE;FALSE}
Для value_ if_true аргумент, мы прадстаўляем вынікі скачка ў даўжыню (C2:C10), таму, калі лагічны тэст дае значэнне TRUE, вяртаецца адпаведны лік са слупка C. Аргумент value_ if_false апушчаны, што азначае, што будзе мець толькі значэнне FALSE, калі ўмова не выконваецца:
{FALSE;FALSE;FALSE;5.48;5.42;5.57;FALSE;FALSE;FALSE}
Гэты масіў перадаецца ў функцыю MAX, якая вяртае максімальны лік без уліку значэнняў FALSE.
Савет. Каб убачыць унутраныя масівы, разгледжаныя вышэй, выберыце адпаведную частку формулы на працоўным аркушы і націсніце клавішу F9. Каб выйсці з рэжыму ацэнкі формулы, націсніце клавішу Esc.
Формула MAX IF з некалькімікрытэрыі
У сітуацыі, калі вам трэба знайсці максімальнае значэнне на аснове больш чым адной умовы, вы можаце:
Выкарыстоўваць укладзеныя аператары IF, каб уключыць дадатковыя крытэрыі:
{=MAX( IF( крытэрый_дыяпазон1 = крытэрый1 , IF( крытэрый_дыяпазон2 = крытэрый2 , максімальны_дыяпазон )))}Або апрацуйце некалькі крытэрыяў з дапамогай аперацыі множання:
{=MAX(IF(( criteria_range1 = criteria_range1 ) * ( criteria_range2 = criteria2 ), max_range ))}Дапусцім, у вас ёсць вынікі хлопчыкаў і дзяўчынак у адной табліцы, і вы жадаеце знайсці самы доўгі скачок сярод дзяўчат у 3 раундзе. Каб зрабіць гэта , мы ўводзім першы крытэрый (жаночы) у G1, другі крытэрый (3) у G2 і выкарыстоўваем наступныя формулы для вылічэння максімальнага значэння:
=MAX(IF(B2:B16=G1, IF(C2:C16=G2, D2:D16)))
=MAX(IF((B2:B16=G1)*(C2:C16=G2), D2:D16))
Паколькі абедзве з'яўляюцца формуламі масіву, калі ласка, не забудзьце націснуць Ctrl + Shift + Enter, каб завяршыць іх правільна.
Як паказана на скрыншоце ніжэй, формулы даюць аднолькавы вынік, таму якую з іх выкарыстоўваць, пытанне ё Вашы асабістыя перавагі. Для мяне формулу з лагічнай логікай прасцей чытаць і будаваць – яна дазваляе дадаваць колькі заўгодна ўмоў без укладання дадатковых функцый IF.
Як працуюць гэтыя формулы
Першая формула выкарыстоўвае дзве ўкладзеныя функцыі IF для ацэнкі двух крытэраў. У лагічным тэсце першага выказвання IF мы параўноўваем значэнні ў слупку "Пол".(B2:B16) з крытэрыем у G1 ("Жаночы"). У выніку атрымліваецца масіў значэнняў TRUE і FALSE, дзе TRUE прадстаўляе даныя, якія адпавядаюць крытэрыю:
{FALSE; FALSE; FALSE; TRUE; TRUE; TRUE; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; TRUE; TRUE; TRUE}
Аналагічным чынам другая функцыя IF правярае значэнні ў круглым слупку (C2 :C16) у адпаведнасці з крытэрам у G2.
Для аргумента value_if_true у другім аператары IF мы прадстаўляем вынікі скачкоў у даўжыню (D2:D16), і такім чынам мы атрымліваем элементы якія маюць TRUE у першых двух масівах у адпаведных пазіцыях (г.зн. элементы, у якіх пол "жаночы", а раунд роўны 3):
{FALSE; FALSE; FALSE; FALSE; FALSE; 4.63; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; 4.52}
Гэты канчатковы масіў пераходзіць да функцыі MAX і яна вяртае найбольшы лік.
Другая формула ацэньвае тыя ж умовы ў рамках аднаго лагічнага тэсту, а аперацыя множання працуе як аператар І:
Калі значэнні ІСЦІНА і ХЛУСНЯ выкарыстоўваюцца ў любым арыфметычнай аперацыі, яны пераўтвараюцца ў 1 і 0 адпаведна. А паколькі множанне на 0 заўсёды дае нуль, атрыманы масіў мае 1 толькі тады, калі ўсе ўмовы ІСТИННЫ. Гэты масіў ацэньваецца ў лагічным тэсце функцыі IF, якая вяртае адлегласці, якія адпавядаюць элементам 1 (TRUE).
MAX IF без масіва
Многія карыстальнікі Excel, у тым ліку я, прадузята ставяцца да формул масіваў і стараюцца пазбаўляцца ад іх усюды, дзе гэта магчыма. На шчасце, у Microsoft Excel ёсць некалькі функцый, якія апрацоўваюць масівы, і мы можам выкарыстоўваць адну з іхтакіх функцый, а менавіта SUMPRODUCT, у якасці "абгорткі" вакол MAX.
Агульная формула MAX IF без масіва выглядае наступным чынам:
=SUMPRODUCT(MAX(( criteria_range1 = крытэрый1 ) * ( крытэрый_дыяпазон2 = крытэрый2 ) * максімальны_дыяпазон ))Натуральна, вы можаце дадаць больш пар дыяпазон/крытэрый, калі неабходна.
Каб убачыць формулу ў дзеянні, мы будзем выкарыстоўваць дадзеныя з папярэдняга прыкладу. Мэта складаецца ў тым, каб атрымаць максімальны скачок спартсменкі ў раўндзе 3:
=SUMPRODUCT(MAX(((B2:B16=G1) * (C2:C16=G2) * (D2:D16))))
Гэта формула спаборнічае са звычайным націскам клавішы Enter і вяртае той жа вынік, што і формула масіва MAX IF:
Прыгледзеўшыся на прыведзены вышэй скрыншот, можна заўважыць, што недапушчальныя скачкі, пазначаныя "х" у папярэдніх прыкладах, цяпер маюць 0 значэнняў у радках 3, 11 і 15 , а ў наступным раздзеле тлумачыцца, чаму.
Як працуе гэтая формула
Як і ў выпадку з формулай МАКСІМ КАЛІ, мы ацэньваем два крытэрыі, параўноўваючы кожнае значэнне ў Пол (B2:B16) і Раунд ( C2:C16) слупкі з крытэрамі ў ячэйках G1 і G2. У выніку атрымаюцца два масівы значэнняў TRUE і FALSE. Памнажэнне элементаў масіваў у аднолькавых пазіцыях пераўтворыць TRUE і FALSE у 1 і 0 адпаведна, дзе 1 прадстаўляе элементы, якія адпавядаюць абодвум крытэрам. Трэці памножаны масіў змяшчае вынікі скачкоў у даўжыню (D2:D16). І таму, што множанне на 0 дае нуль, толькі элементы, якія маюць 1 (TRUE) у адпаведных пазіцыяхsurvive:
{0; 0; 0; 0; 0; 4.63; 0; 0; 0; 0; 0; 0; 0; 0; 4.52}
Калі max_range змяшчае якое-небудзь тэкставае значэнне, аперацыя множання вяртае памылку #VALUE, з-за якой уся формула не будзе працаваць.
Функцыя MAX бярэ яго адсюль і вяртае найбольшы лік, які адпавядае зададзеным умовам. Атрыманы масіў, які складаецца з аднаго элемента {4.63}, накіроўваецца ў функцыю SUMPRODUCT і выводзіць максімальную колькасць у ячэйцы.
Заўвага. З-за сваёй асаблівай логікі формула працуе з наступнымі агаворкамі:
- Дыяпазон, у якім вы шукаеце найбольшае значэнне, павінен утрымліваць толькі лічбы. Калі ёсць тэкставыя значэнні, #VALUE! вяртаецца памылка.
- Формула не можа ацаніць умову «не роўная нулю» ў адмоўным наборы даных. Каб знайсці максімальнае значэнне без уліку нулёў, выкарыстоўвайце формулу MAX IF або функцыю MAXIFS.
Формула MAX IF Excel з логікай АБО
Каб знайсці максімальнае значэнне пры любым з указаных умоў выконваецца, выкарыстоўвайце ўжо знаёмую формулу масіва MAX IF з лагічнай логікай, але дадайце ўмовы замест іх множання.
{=MAX(IF(( criteria_range1 = крытэрый1 ) + ( крытэрый_дыяпазон2 = крытэрый2 ), максімальны_дыяпазон ))}У якасці альтэрнатывы вы можаце выкарыстоўваць наступную формулу без масіва :
=SUMPRODUCT(MAX((( дыяпазон_крытэрыяў1 = дыяпазон_крытэрыяў1 ) + ( дыяпазон_крытэрыяў2 = дыяпазон_крытэрыяў2 )) * max_range ))У якасці прыкладу давайце папрацуемлепшы вынік у раундах 2 і 3. Калі ласка, звярніце ўвагу, што ў мове Excel задача фармулюецца інакш: вярнуць максімальнае значэнне, калі раунд роўны 2 або 3.
З раундамі, пералічанымі ў B2:B10 , вынікі ў C2:C10 і крытэрыі ў F1 і H1, формула выглядае наступным чынам:
=MAX(IF((B2:B10=F1) + (B2:B10=H1), C2:C10))
Увядзіце формулу, націснуўшы камбінацыю клавіш Ctrl + Shift + Enter, і вы атрымаеце гэты вынік:
Максімальнае значэнне з такімі ж умовамі таксама можна знайсці з дапамогай гэтай формулы без масіву:
=SUMPRODUCT(MAX(((B2:B10=F1) + (B2:B10=H1)) * C2:C10))
Аднак у гэтым выпадку нам трэба замяніць усе значэнні "x" у слупку C нулямі, таму што SUMPRODUCT MAX працуе толькі з лікавымі данымі:
Як працуюць гэтыя формулы
Формула масіву працуе сапраўды гэтак жа, як MAX IF з логікай AND, за выключэннем таго, што вы аб'ядноўваеце крытэрыі, выкарыстоўваючы аперацыю складання замест множання. У формулах масіва складанне працуе як аператар АБО:
Складанне двух масіваў TRUE і FALSE (якія атрымліваюцца ў выніку праверкі значэнняў у B2:B10 на адпаведнасць крытэрам у F1 і H1) стварае масіў з 1 і 0, дзе 1 абазначае элементы, для якіх адно з умоў ПРАЎДНА, а 0 абазначае элементы, для якіх абодва ўмовы ХЛУСНЯ. У выніку функцыя КАЛІ "захоўвае" ўсе элементы ў C2:C10 ( value_if_true ), для якіх любая ўмова TRUE (1); астатнія элементы замяняюцца на FALSE, таму штоАргумент value_if_false не ўказаны.
Формула без масіва працуе аналагічным чынам. Розніца ў тым, што замест лагічнага тэсту IF вы памнажаеце элементы масіва 1 і 0 на элементы масіва вынікаў скачкоў у даўжыню (C2:C10) у адпаведных пазіцыях. Гэта анулюе элементы, якія не адпавядаюць ніякай умове (маюць 0 у першым масіве), і захоўваюць элементы, якія адпавядаюць адной з умоў (маюць 1 у першым масіве).
MAXIFS – просты спосаб знайсці найвышэйшы значэнне з умовамі
Карыстальнікі Excel 2019, 2021 і Excel 365 не маюць праблем з утаймаваннем масіваў для стварэння ўласнай формулы MAX IF. Гэтыя версіі Excel забяспечваюць доўгачаканую функцыю MAXIFS, якая робіць пошук найбольшага значэння лёгкай гульнёй.
У першым аргументе MAXIFS вы ўводзіце дыяпазон, у якім павінна знаходзіцца максімальнае значэнне (D2: D16 у нашым выпадку), і ў наступных аргументах вы можаце ўвесці да 126 пар дыяпазон/крытэрый. Напрыклад:
=MAXIFS(D2:D16, B2:B16, G1, C2:C16, G2)
Як паказана на скрыншоце ніжэй, гэтая простая формула не мае праблем з апрацоўкай дыяпазону, які змяшчае як лікавыя, так і тэкставыя значэнні:
Для атрымання падрабязнай інфармацыі аб гэтай функцыі, калі ласка, глядзіце функцыю Excel MAXIFS з прыкладамі формул.
Вось як вы можаце знайсці максімальнае значэнне з умовамі ў Excel. Я дзякую вам за чытанне і спадзяюся ўбачыць вас у нашым блогутыдзень!
Практычны сшытак для спампоўкі
Прыклады формул Excel MAX IF (файл .xlsx)