|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
25.08.2013, 22:00 | #1 |
Новичок
Джуниор
Регистрация: 25.08.2013
Сообщений: 4
|
поиск совпадений по 3 и более стобцам
Добрый!
Прошу помощи у профи. Есть 5 столбцов в которых могут быть аналогичные данные. Задачка состоит в том, что бы эти данные найти. Данных много (>10000 строк) поэтому красить долго. Идеально перенести на новый лист, те которые совпали во всех 5 столбцах. Код макроса будет приравнен к спасению человечества! |
25.08.2013, 23:04 | #2 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,166
|
Плохой пример - нет совпадений. Но несложно их конечно внести.
Код:
webmoney: E265281470651 Z422237915069 R418926282008
|
25.08.2013, 23:55 | #3 |
Пользователь
Регистрация: 08.07.2013
Сообщений: 95
|
Раскрасить очень просто,только некоторые данные у Вас и в столбцах повторяются.
|
26.08.2013, 00:00 | #4 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,166
|
Можно и в моём коде раскраску добавить - просто ещё раз проходим по массиву, уже только анализируем item, если "11111", то по позиции в массиве определяем ячейку и красим.
Только действительно зачем? Как их в такой куче искать? Если нужно, то можно и номера строк тоже собрать и вывести рядом с значением в новую книгу.
webmoney: E265281470651 Z422237915069 R418926282008
|
26.08.2013, 00:03 | #5 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,166
|
Вообще мой вариант можно ускорить - вместо финального перебора словаря при просмотре последнего столбца сразу можно и собирать результат.
Только тогда циклы нужно менять, и в общем соответственно весь код. Не хочу
webmoney: E265281470651 Z422237915069 R418926282008
|
26.08.2013, 12:07 | #6 |
Новичок
Джуниор
Регистрация: 25.08.2013
Сообщений: 4
|
Спасибо большое за быстрый отклик и за код, он работает.
Но как то странно. В примере, который я выложил есть повторения. И код их находит если взять значение и скопировать в 5 столбцов. Если взять как есть, то выскакивает сообщение "Нет повторений" Это же подтверждается и кодом от пользователя Czeslaw Форматирование видит дубли. Я проверил на тексте, повторения находятся, также если их прописать в столбцах. Не пойму в чем проблема. Может быть это проблема с данными, это экспорт из другой программы? |
26.08.2013, 12:12 | #7 |
Новичок
Джуниор
Регистрация: 25.08.2013
Сообщений: 4
|
Уважаемый Hugo121 вижу номер Вашего кошелька.
Какая цифра заставит Вас поменять свое решение? Пожелания к доработке: - скорость работы алгоритма не снижаем (предполагаемый объем данных 30000-50000 строк) - данные о совпадениях добавляем не в новую книгу а в новый лист этой книги. - есть еще несколько пожеланий не относящихся конкретно к этой задаче, но имеющей отношение к проекту, в случае заинтересованности готов предоставить. Последний раз редактировалось Macjus; 26.08.2013 в 12:15. |
26.08.2013, 12:17 | #8 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,166
|
Я делал под Ваше задание - вывести значение, если оно есть во всех столбцах.
Там в примере таких нет. Если в рабочем такие видите, а код не находит - смотрите лишние пробелы (их кстати можно в коде trim'ом отрезать, но это тормозит, потому не добавлял). Или форматом отображается одно, на самом деле значение другое - тогда можно брать не value, a text, но это думаю неправильно. Ещё бывают некоторые глюки, когда значения по всему одинаковые, а код видит разницу - тогда может помочь cstr(). Думаю лучше покажите такие проблемные данные/ошибки в файле. P.S. Можно и в эту книгу лист добавлять, нет проблем. Сумму могу назвать когда увижу конкретную задачу (не нужен весь файл, но нужен небольшой аналогичный по данным-форматам). Пытался написать почту в личку - он недоступна. А тут светить не хочу - и так спама хватает... Хотя думаю вполне народ и тут бесплатно поможет - особых проблем нет (как определить наличие во всех столбцах - я одно решение написал, других затруднений в задаче нет).
webmoney: E265281470651 Z422237915069 R418926282008
Последний раз редактировалось Hugo121; 26.08.2013 в 12:31. |
28.08.2013, 09:44 | #9 |
Новичок
Джуниор
Регистрация: 25.08.2013
Сообщений: 4
|
Спасибо за помощь, разобрался. Все работает правильно.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Поиск совпадений. | riniks17 | Microsoft Office Excel | 14 | 23.12.2012 19:57 |
Поиск совпадений | tigran67 | Паскаль, Turbo Pascal, PascalABC.NET | 0 | 29.03.2012 16:44 |
Поиск совпадений | KillJoy | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 05.09.2011 11:53 |
Поиск совпадений | Серёга0629 | Microsoft Office Excel | 9 | 29.08.2011 09:22 |
Поиск совпадений в БД | _PROGRAMM_ | PHP | 6 | 21.05.2010 13:53 |