![](https://cdn.wiki-base.com/5189951/excel_formula_first_match_between_two_ranges__2.png.webp)
Обща формула
=INDEX(range2,MATCH(TRUE,COUNTIF(range1,range2)>0,0))
Обобщение
За да извлечете първото съвпадение в два диапазона от стойности, можете да използвате формула, базирана на функциите INDEX, MATCH и COUNTIF. В показания пример формулата в G5 е:
=INDEX(range2,MATCH(TRUE,COUNTIF(range1,range2)>0,0))
където "range1" е наименуваният диапазон B5: B8, "range2" е наименуваният диапазон D5: D7.
Обяснение
В този пример наименуваният диапазон "range1" се отнася до клетки B5: B8, а наименуваният диапазон "range2" се отнася до D5: D7. Използваме именувани диапазони само за удобство и четливост; формулата работи добре и с редовни препратки към клетки.
Ядрото на тази формула е INDEX и MATCH. Функцията INDEX извлича стойност от range2, която представлява първата стойност в range2, която се намира в range1. Функцията INDEX изисква индекс (номер на ред) и ние генерираме тази стойност с помощта на функцията MATCH, която е настроена да съответства на стойността TRUE в тази част от формулата:
MATCH(TRUE,COUNTIF(range1,range2)>0,0)
Тук стойността на съвпадението е TRUE, а масивът за търсене се създава с COUNTIF тук:
COUNTIF(range1,range2)>0
COUNTIF връща броя на стойностите на диапазона2, които се появяват в диапазона1. Тъй като range2 съдържа множество стойности, COUNTIF ще върне множество резултати, които изглеждат така:
(0;0;1)
Използваме "> 0", за да принудим всички резултати да бъдат ИСТИНСКИ или НЕВЯРНИ:
(FALSE;FALSE;TRUE)
Тогава MATCH прави своето и връща позицията на първата ИСТИНА (ако има такава), която се появява, в този случай числото 3.
И накрая, INDEX връща стойността в тази позиция "Red".