написал: возможно. Но Msi2102 так же упомянул и пару других функций:
Убедили пол собаки не доел)))) посмотрел представленный вариант связки двух функций ВПР и ПОИСКПОЗ да есть решение, но куда проще нажать один раз кнопку, чем вставлять формулы Ctrl+Shift+Enter
написал: поверьте, далеко не факт, что это именно правильное решение Как и мое, в общем-то. Пока нет внятной постановки задачи - правильное решение найти тоже не самая простая задача.
написал: И если будет правильный пример, тогда возможно, выяснится, что Вы недоели, ту злощастную, собаку
ХА-ХА-ХА! да что с вами (второй человек меня с автором поста перепутал) ! Внимательно посмотрите на ник автора поста.... а потом на мой ник!! неужели так похожи! Я вообще то решение автору уже выложил. Здесь люди ждут помощи, а не добротной содержательной критики в свой (ЧУЖОЙ) адрес!
написал: Cristal, изменил алгоритм обработки. Посмотрите файл V5 по ссылке ниже.Теперь ваш файл почти из 90 тысяч позиций обрабатывается примерно за 5 секунд. В предыдущей версии V4 на моем ПК требовалось около 15 мин.Полагаю сейчас миллион будет обрабатываться около 1 мин.
Sub dsf()
For i = 2 To Worksheets("Лист для добавления").Cells(Rows.Count, 1).End(xlUp).Row
For j = 2 To Worksheets("список").Cells(Rows.Count, 1).End(xlUp).Row
If Worksheets("Лист для добавления").Cells(i, 4) = Worksheets("список").Cells(j, 5) Then
s = s + Worksheets("список").Cells(j, 2)
End If
Next j
For x = 8 To 19
a = Worksheets("Лист для добавления").Cells(1, x)
b = s
If InStr(b, a) = 0 Then
Worksheets("Лист для добавления").Cells(i, x) = "x"
End If
Next x
s = ""
Next i
End Sub
написал: Алексей, я вам по секрету скажу - обычно когда делают файл-пример, показывают в файле какой итоговый результат хотят получить
Здравствуйте уважаемый New. Я вам тоже по секрету скажу, что не я автор вопроса, и мои попытки накидать примерный план работ считаю не самым удачным, но притензии не ко мне)))
Для ускорения нужно избавиться от циклов используя sql запросы и время выполнения макроса сократится до нескольких секунд ! Только прийдется еще один столбец вставлять чтобы избежать повторного изменения ячейки при соблюдении условия с уже урезанной строкой!
написал: Копайте в сторону =ВПР() или =ПОИСКПОЗ() и =ИНДЕКС()
ВПР работает только с уникальными записями (не прокатит) - тут нужен макрос! Таблицы небольшие - можно перебором находим все характеристики из таблицы2 для элемента из таблицы 1 складывая все в одну строковую переменную после этого циклом проверяем входит ли название столбцов с G до S полученную стоку, если нет то в ячейку пишем "Х" если да то пропускаем и так для каждой строки из таблицы1.
Может кому полезно будет Excel 2010 pro. Сработало по следующему коду без всяких циклов на весь выделенный диапазон в данном случае к колонке из умной таблицы