
Обща формула
(=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)))
Където "names" е наименуваният диапазон C5: C14, а "class" е наименуваният диапазон B5: B14.
Забележка: това е формула на масив и трябва да се въведе с control + shift + enter.
Обяснение
Ядрото на тази формула е функцията MATCH, която локализира позицията на най-дългия низ, използвайки предоставени критерии:
MATCH(MAX(LEN(names)*(class=F5)),LEN(names)*(class=F5),0)
Забележка СЪВПЕЧНЕНИЕТО е настроено да изпълнява точно съвпадение чрез предоставяне на нула за типа на съвпадението. За справочна стойност имаме:
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 послушно връща стойността на третата позиция на имената , която е „Джонатан“.