как быстро проверить содержится ли одна ячейка среди других?

Программирование на Visual Basic for Applications
coshi
Начинающий
Начинающий
 
Сообщения: 15
Зарегистрирован: 31.01.2005 (Пн) 10:57

как быстро проверить содержится ли одна ячейка среди других?

Сообщение coshi » 13.04.2005 (Ср) 10:57

подскажите можно ли в экселе программно проверить наличие данной ячейки в столбце других ячеек (по значению) кроме как последовательно перебирая ячейки и сравнивая их?

Дело в том что мне нужно проверить 1000 строк на наличие двух ячеек из этой строки в множестве из 100 строк по 2 ячейки, (находящихся в другой книге, не знаю, существенно ли это по производительности), таким образом делая 1000*100*2 = 200 000 сравнений, что, как мне кажется, будет работать слишком медленно.

uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 13.04.2005 (Ср) 11:42

Есть встроенная функция ВПР. Она, правда, ищет только одну ячейку в одном столбце, т. е. тебе придется объединять две ячейки в одну и в списке, и в множестве поиска. Зато потом все просто:

пишешь =ВПР(то_что_ищем;то_где_ищем;1;ЛОЖЬ), получаешь на выходе #Н/Д, если ячейка не найдена, или значение этой ячейки, если найдена.

Вряд ли, впрочем, это будет работать быстро. Про сравнения уже говорилось неоднократно - самый быстрый способ - это отсортировать массивы, после этого можно искать в них значения гораздо быстрее.


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 55

    TopList