Формула Excel: знайти найдовший рядок із критеріями -

Загальна формула

(=INDEX(rng1,MATCH(MAX(LEN(rng1)*(rng2=criteria)),LEN(rng1)*(rng2=criteria),0)))

Резюме

Щоб знайти найдовший рядок у діапазоні з критеріями, ви можете використовувати формулу масиву на основі INDEX, MATCH, LEN та MAX. У наведеному прикладі формула в F6 має вигляд:

(=INDEX(names,MATCH(MAX(LEN(names)*(class=F5)),LEN(names)*(class=F5),0)))

Де "імена" - іменований діапазон C5: C14, а "клас" - іменований діапазон B5: B14.

Примітка: це формула масиву, і її потрібно вводити за допомогою control + shift + enter.

Пояснення

Ядром цієї формули є функція MATCH, яка визначає позицію найдовшого рядка за допомогою наданих критеріїв:

MATCH(MAX(LEN(names)*(class=F5)),LEN(names)*(class=F5),0)

Примітка MATCH налаштовано для виконання точного збігу, подаючи нуль для типу збігу. Для значення пошуку ми маємо:

LEN(names)*(class=F5)

Функція LEN повертає масив результатів (довжини), по одному для кожного імені у списку, де class = "A" з комірки F5:

(5;6;8;6;6;0;0;0;0;0)

Це ефективно фільтрує весь клас B, і функція MAX потім повертає найбільше значення, 8.

Для побудови масиву підстановки ми використовуємо той самий підхід:

LEN(names)*(class=F5)

І отримати той самий результат:

(5;6;8;6;6;0;0;0;0;0)

Після запуску LEN та MAX ми маємо формулу MATCH з такими значеннями:

MATCH(8,(5;6;8;6;6;0;0;0;0;0),0))

Потім MATCH повертає позицію 8 у списку 3, яка подається до INDEX таким чином:

=INDEX(names,3)

Нарешті, INDEX слушно повертає значення на 3-й позиції імен , тобто "Джонатан".

Цікаві статті...