Приветствую. Суть вопроса такова - Столбец А - числа Столбец B - коды Столбец C - пояснение Столбец D - результат
Нужно найти и вывести в столбец D пояснение из столбца C, в котором будет показан ближайший схожий (не арифметически) по количеству знаков слева код из столбца B.
В примере в приложеном фале, в ячейку D1 отобразился бы результат - d
при больших объемах данных вылезают неточности. В примере - A2-A14 значения идут подряд, но с 10 строки, поле Результат некорректно ищет совпадения не начиная с 1 символа, вообще в принципе совпадения которые есть в значении ячейки
результат не зависит от обьема данных, а зависит от того что считает формула (не внимательно прочитал условия) та считала максимальное количество совпадающих цифр, а эта:
Не все что коротко - хорошо провел тест 3400 примеров обработка и более чем в 4 раза быстрее последняя формула, не смотря на массивность. =INDEX(C:C,MAX(IF(--LEFT(A2,LEN($B$1:$B$4384))=$B$1:$B$4384,ROW($B$1:$B$4384)))) 10,87109 =INDEX(C:C,MOD(AGGREGATE(14,6,(FIND(B2:B4384,A2)=1)*(LEN(B2:B4384)+ROW(B2:B4384)%%),1),1)/1%%) 7,878906 =VLOOKUP(--LEFT(A2,AGGREGATE(14,6,ROW($1:$15)/(COUNTIF(B:B,LEFT(A2,ROW($1:$15)))=1),1)),B:C,2,) 5,894531 =INDEX(C:C,MATCH(--LEFT(A2,AGGREGATE(14,6,ROW($1:$15)/(COUNTIF(B:B,LEFT(A2,ROW($1:$15)))=1),1)),B:B,)) 5,972656 =VLOOKUP(--LEFT(A2,AGGREGATE(14,6,ROW($1:$15)/ISNUMBER(MATCH(--LEFT(A2,ROW($1:$15)),B:B,)),1)),B:C,2,) 2,996094 =INDEX(C:C,MATCH(--LEFT(A2,AGGREGATE(14,6,ROW($1:$15)/ISNUMBER(MATCH(--LEFT(A2,ROW($1:$15)),B:B,)),1)),B:B,)) 2,609375 =INDEX(C:C,MATCH(--LEFT(A2,MAX(IF(ISNUMBER(MATCH(--LEFT(A2,ROW($1:$15)),B:B,)),ROW($1:$15)))),B:B,)) 2,453125
Значит неправильно понял задачу. По моей формуле ищет наибольшее количество совпадающих символов слева. Оставшиеся символы и в образце, и в таблице игнорирует. 123456789 выберет 12345699, а не 12345