VictorKos
Member | Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору DJMC Честно говоря, мой уровень знаний Excel ниже среднего. Наверняка, Вашу задачу можно решить более грамотно, но пока никто не предложил лучшего решения, будем разбирать работу с моим вариантом. 1. Вертикальный столбец A1:A500 я заполнил формулой Код: При каждом обновлении листа (например, нажатием клавиши F9) эта формула будет генерировать новые значения. Не уверен, что Вас такое поведение диапазона устроит, поэтому заполняйте диапазон так, как считаете нужным. (Можно выделить весь диапазон, скопировать, и не снимая выделения через специальную вставку вставить значения. После этого значения станут константами и изменяться не будут.) 2. Долго искал по "екселевским" сайтам формулу, которая могла бы без прибегания к VBA искать в диапазоне последовательное вхождение идущих подряд нескольких чисел, но ничего подходящего не нашёл Есть стандартное решение через формулы для похожего поиска в текстовой строке, находящейся в одной ячейке, но для поиска в диапазоне ячеек такой подход не сработал. Поэтому решил в формуле использовать объединение ячеек диапазона A1:A500 в один массив и искать нужную последовательность уже в этом массиве. 3. Объединить диапазон ячеек в одну строку можно было бы через функцию СЦЕПИТЬ, но очень уж много ячеек в диапазоне, а эта функция работает только с отдельными ячейками, и не может принимать значения для объединения из диапазона. Поэтому пришлось найти решение, использующее средства VBA - пользовательская функция (UDF). Нашёл нужную UDF Concat на сайте Planetaexcel.ru и использовал её в формуле для преобразования значений из диапазона A1:A500 в текстовую строку, а уже из текстовой строки производил поиск нужного значения. 4. Как пользоваться файлом? Я не знаю, как Вы раньше это делали и как нужно? В ячейке C1 вводится 5 цифр, а в C3 находится формула, которая находит идущие подряд 5 ячеек в диапазоне A1:A500 и возвращает значение ячейки, следующее за пятой цифрой. |