Зміст
У статті показано кілька різних способів отримання максимального значення в Excel на основі однієї або декількох умов, які ви вказуєте.
У нашому попередньому уроці ми розглянули загальне використання функції МАКС, яка призначена для повернення найбільшого числа в наборі даних. Однак у деяких ситуаціях вам може знадобитися більш детальний аналіз даних, щоб знайти максимальне значення на основі певних критеріїв. Це можна зробити за допомогою декількох різних формул, і в цій статті пояснюються всі можливі способи.
Формула Excel МАКС ЕСЛИ
До недавнього часу в Microsoft Excel не було вбудованої функції МАКСИФ для отримання максимального значення на основі умов. З введенням МАКСИФ в Excel 2019 ми можемо зробити умовний максимум простим способом.
В Excel 2016 і більш ранніх версіях, як і раніше, доводиться створювати власні формула масиву шляхом поєднання функції MAX з оператором IF:
{=MAX(IF( критерії_діапазон = критерії , max_range ))}Щоб побачити, як ця загальна формула МАКСИМАЛЬНЕ ЯКЩО працює на реальних даних, розглянемо наступний приклад. Припустимо, у вас є таблиця з результатами стрибків у довжину кількох учнів. Таблиця містить дані за три раунди, і ви шукаєте кращий результат конкретного спортсмена, скажімо, Якова. З іменами учнів в діапазоні A2:A10 і відстанями в діапазоні C2:C10, формула набуває такого вигляду:
=MAX(IF(A2:A10="Jacob", C2:C10))
Зверніть увагу, що формула масиву завжди повинна вводитися з одночасним натисканням клавіш Ctrl + Shift + Enter. В результаті вона автоматично оточується фігурними дужками, як показано на скріншоті нижче (набрати дужки вручну не вийде!).
У реальних робочих аркушах зручніше вводити критерій в якусь комірку, щоб можна було легко змінити умову, не змінюючи формулу. Отже, набираємо потрібну назву в F1 і отримуємо наступний результат:
=MAX(IF(A2:A10=F1, C2:C10))
Як працює ця формула
У логічному тесті функції ЯКЩО ми порівнюємо список імен (A2:A10) з цільовим іменем (F1). Результатом цієї операції є масив ІСТИНА і ХИБНІСТЬ, де значення ІСТИНА представляють імена, які збігаються з цільовим іменем (Яків):
{FALSE;FALSE;FALSE;FALSE;TRUE;TRUE;TRUE;FALSE;FALSE;FALSE;FALSE}
Для value_ if_true ми надаємо результати стрибків у довжину (C2:C10), тому, якщо логічний тест оцінюється як TRUE, повертається відповідне число зі стовпчика C. value_ if_false опускається, значення буде просто мати значення FALSE, якщо умова не виконується:
{FALSE;FALSE;FALSE;FALSE;5.48;5.42;5.57;FALSE;FALSE;FALSE;FALSE}
Цей масив подається на функцію MAX, яка повертає максимальне число, ігноруючи значення FALSE.
Порада. Щоб побачити внутрішні масиви, про які йшлося вище, виділіть відповідну частину формули на робочому аркуші та натисніть клавішу F9. Щоб вийти з режиму обчислення формули, натисніть клавішу Esc.
Формула МАКСИМАЛЬНЕ ЯКЩО з декількома критеріями
У ситуації, коли потрібно знайти максимальне значення за кількома умовами, можна або так, або так:
Використовуйте вкладені оператори IF для включення додаткових критеріїв:
{=MAX(IF( критерії_діапазон1 = критерії1 , IF( критерії_діапазон2 = критерії2 , max_range )))}Або обробляти декілька критеріїв за допомогою операції множення:
{=MAX(IF(() критерії_діапазон1 = критерії1 ) * ( критерії_діапазон2 = критерії2 ), 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 ми порівнюємо значення в колонці Gender (B2:B16) з критерієм в G1 ("Жінка"). Результатом є масив значень TRUE і FALSE, де TRUE представляє дані, які відповідають критерію:
{FALSE; FALSE; FALSE; FALSE; TRUE; TRUE; TRUE; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; TRUE; TRUE; TRUE}
Аналогічно, друга функція IF перевіряє значення в колонці Round (C2:C16) на відповідність критерію в G2.
Для value_if_true у другому операторі IF ми подаємо результати стрибків у довжину (D2:D16), і таким чином отримуємо елементи, які мають значення TRUE у перших двох масивах на відповідних позиціях (тобто елементи, де стать "жіноча", а число раундів дорівнює 3):
{FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; 4.63; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; 4.52}
Цей кінцевий масив передається у функцію MAX і вона повертає найбільше число.
Друга формула оцінює ті ж самі умови в межах одного логічного тесту, а операція множення працює як оператор AND:
Коли значення TRUE і FALSE використовуються в будь-якій арифметичній операції, вони перетворюються в 1 і 0 відповідно. А оскільки множення на 0 завжди дає нуль, то результуючий масив має 1 тільки тоді, коли всі умови є TRUE. Цей масив оцінюється в логічному тесті функції IF, яка повертає відстані, що відповідають 1 (TRUE) елементам.
MAX IF без масиву
Багато користувачів Excel, в тому числі і я, з упередженням ставляться до масивних формул і намагаються позбутися їх по можливості. На щастя, в Microsoft Excel є кілька функцій, які працюють з масивами нативно, і ми можемо використовувати одну з таких функцій, а саме СУММПРОИЗВОД, як своєрідну "обгортку" навколо MAX.
Загальна формула MAX IF без масиву виглядає наступним чином:
=SUMPRODUCT(MAX(( критерії_діапазон1 = критерії1 ) * ( критерії_діапазон2 = критерії2 ) * max_range ))Звичайно, ви можете додати більше пар діапазонів/критеріїв, якщо це необхідно.
Щоб побачити формулу в дії, скористаємося даними з попереднього прикладу. Мета - отримати максимальний стрибок спортсменки в 3-му раунді:
=SUMPRODUCT(MAX(((B2:B16=G1) * (C2:C16=G2) * (D2:D16))))
Ця формула конкурує зі звичайним натисканням клавіші Enter і повертає той же результат, що і формула МАКС ЕСЛИ масиву:
Придивившись уважніше до наведеного вище скріншоту, можна помітити, що недійсні переходи, позначені "х" у попередніх прикладах, тепер мають 0 значень у рядках 3, 11 та 15, і в наступному розділі пояснюється, чому це так.
Як працює ця формула
Як і у формулі МАКСИМАЛЬНЕ ЯКЩО, ми оцінюємо два критерії, порівнюючи кожне значення в стовпчиках Стать (B2:B16) та Круглий (C2:C16) з критеріями в комірках G1 та G2. Результатом є два масиви значень ІСТИНА та ХИБНІСТЬ. Множення елементів масивів на однакових позиціях перетворює значення ІСТИНА та ХИБНІСТЬ на 1 та 0 відповідно, де 1 - це елементи, які відповідають обом критеріям. Третій помножений елемент - цемістить результати стрибків у довжину (D2:D16), а оскільки множення на 0 дає нуль, то виживають лише ті елементи, у яких у відповідних позиціях стоїть 1 (TRUE):
{0; 0; 0; 0; 0; 4.63; 0; 0; 0; 0; 0; 0; 0; 0; 4.52}
У разі, якщо max_range містить будь-яке текстове значення, операція множення повертає помилку #VALUE, через яку вся формула не буде працювати.
Далі його забирає функція МАКС і повертає найбільше число, що задовольняє заданим умовам. Отриманий масив, що складається з одного елемента {4.63}, надходить у функцію СУММЕСЛИ і вона виводить максимальне число в комірці.
Примітка: через свою специфічну логіку формула працює з наступними застереженнями:
- Діапазон, в якому шукається найбільше значення, повинен містити тільки числа. Якщо є текстові значення, повертається помилка #VALUE!
- Формула не може обчислити умову "не дорівнює нулю" у від'ємному наборі даних. Для знаходження максимального значення без урахування нулів використовуйте формулу МАКС ЕСЛИ або функцію МАКСИФИКС.
Формула Excel МАКСИМАЛЬНЕ ЯКЩО з логікою АБО
Знайти максимальне значення при будь-який із зазначених умов виконується, використовуйте вже знайому формулу МАКСИМУМ ЕСЛИ масиву з булевою логікою, але додайте умови, а не перемножуйте їх.
{=MAX(IF(() критерії_діапазон1 = критерії1 ) + ( критерії_діапазон2 = критерії2 ), max_range ))}Як варіант, можна використати наступну формулу без масиву:
=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, за винятком того, що ви об'єднуєте критерії, використовуючи операцію додавання замість множення. У формулах масиву додавання працює як оператор OR:
Додавання двох масивів TRUE і FALSE (які є результатом перевірки значень в B2:B10 на відповідність критеріям в F1 і H1) створює масив з 1 і 0, де 1 представляє елементи, для яких будь-яка з умов є TRUE, а 0 представляє елементи, для яких обидві умови є FALSE. В результаті, функція IF "зберігає" всі елементи в C2:C10 ( value_if_true ), для яких будь-яка умова є ІСТИНА (1); решта пунктів замінені на БРЕХНЯ, оскільки value_if_false аргумент не вказано.
Формула без масиву працює аналогічно. Різниця полягає в тому, що замість логічної перевірки ЕСЛИ ви множите елементи масиву 1 і 0 на елементи масиву результатів стрибка в довжину (С2:С10) у відповідних позиціях. Це обнуляє елементи, які не відповідають жодній умові (мають 0 в першому масиві) і залишає елементи, які відповідають одній з умов (мають 1 в першому масиві), і зберігає елементи, які відповідають одній з умов (мають 1 в першому масиві).масив).
МАКСИФИ - простий спосіб знайти найвищу вартість з умовами
Користувачі Excel 2019, 2021 і Excel 365 позбавлені клопоту з приборканням масивів для побудови власної формули МАКСИФ. У цих версіях Excel передбачена довгоочікувана функція МАКСИФИКС, яка робить пошук найбільшого значення з умовами дитячою забавкою.
У першому аргументі MAXIFS вводиться діапазон, в якому потрібно знайти максимальне значення (в нашому випадку D2:D16), а в наступних аргументах можна ввести до 126 пар діапазон/критерії. Наприклад:
=MAXIFS(D2:D16, B2:B16, G1, C2:C16, G2)
Як показано на скріншоті нижче, ця проста формула без проблем обробляє діапазон, що містить як числові, так і текстові значення:
Детальну інформацію про цю функцію можна знайти в розділі Функція МАКСИМУМ в Excel з прикладами формул.
Ось так можна знайти максимальне значення за допомогою умов в Excel. Дякую за увагу і сподіваюся побачити вас на нашому блозі наступного тижня!
Практичний посібник для завантаження
Приклади формул Excel MAX IF (файл .xlsx)