|
0 / 0 / 0
Регистрация: 25.05.2011
Сообщений: 27
|
|
Поиск и пометка повторяющихся значений20.09.2006, 21:36. Показов 18462. Ответов 31
Метки нет (Все метки)
Доброго дня, Господа !
Помогите мне, пожалуйста, определится с правильным подходом для реализации следующей задачи: Есть столбец с данными в ячейках, например: Столбец 1 Столбец 2 Иванов Петров Сидоров Дармостук Петров Иванов Необходимо при запуске макроса в столбце правее проставить метку напротив тех значений, которые повторяются, т. е.: Столбец 1 Столбец 2 Иванов Петров Сидоров Дармостук Петров 1 Иванов 1 Другими словами, как только значение встречается второй раз, напротив него ставится метка. Предвидя некоторые варианты ответов, скажу, что сортировка а потом применение формулы типа "=if(A1=A2,1,"")", как и применение сводной таблицы или других непрограммных методов, не подходит. Это необходимо реализовать программно. Так вот, принимая во внимание все вышесказанное, я думаю реализовать это следующим способом: 1. Выделяю необходимую область 2. Создаю динамический массив 3. В цикле перебираю каждую ячейку, сравнивая ее содержимое со значениями в массиве. Если содержимое ячейки уже есть в массиве, то ставится метка, если нет, то заносится в массив. Буду рад выслушать Ваши мысли, советы и комментарии по этому поводу Александр
0
|
|
| 20.09.2006, 21:36 | |
|
Ответы с готовыми решениями:
31
Сравнение повторяющихся значений
|
|
0 / 0 / 0
Регистрация: 25.05.2011
Сообщений: 27
|
|
| 22.09.2006, 17:16 [ТС] | |
|
To игорий,
Ну я думаю что количество времени отрабатывания макроса не превышает количества времени, если это делать вручную. Хотя надо проверить ![]() To rank1, Очень интересно попробовать, вот только код спотыкается на строке "Dim h As New Scripting.dictionary". Может галочку какую где поставить надо? С уважением, Александр
0
|
|
|
2 / 2 / 0
Регистрация: 16.04.2012
Сообщений: 24
|
||||||
| 22.09.2006, 17:23 | ||||||
|
у меня в варианте
и это вариант - у меня во всяком случае - принципиально быстрее отработал - сгенерированный мною столбец из 55 тыс строк обработался менее чем за 10 секунд (около 100 повторений было)
0
|
||||||
|
rank1
|
|
| 22.09.2006, 17:29 | |
|
Всегда паджалуйста)
|
|
|
rank1
|
|
| 22.09.2006, 17:31 | |
|
Надо подключить scrrun.dll
Tools->References... |
|
|
0 / 0 / 0
Регистрация: 08.09.2011
Сообщений: 45
|
||||||
| 22.09.2006, 17:51 | ||||||
|
а ещё есть альтернативное решение, можно просто отфильтровать список
0
|
||||||
|
rank1
|
|
| 22.09.2006, 18:37 | |
|
AdvancedFilter рулез!!!)))
|
|
|
0 / 0 / 0
Регистрация: 25.05.2011
Сообщений: 27
|
|
| 22.09.2006, 21:56 [ТС] | |
|
<STRONG>То rank1</STRONG>,
И еще один вопросик на последок. Для полного и всепоглощающего счастья не хватает макроса, который выделяет <STRONG>все</STRONG> повторяющиеся записи: Столбец 1 Столбец 2 Иванов 1 Петров 1 Сидоров Дармостук Иванов 1 Петров 1 Чувствую, что это можно сделать, подкрутив Ваш макрос, но уже в конце рабочей недели ничего соображаю. Заранее спасибо. С уважением, Александр
0
|
|
|
rank1
|
||||||
| 23.09.2006, 01:19 | ||||||
|
Это с выделением цветом
|
||||||
|
rank1
|
||||||
| 23.09.2006, 01:50 | ||||||
|
А если select то вот так
|
||||||
|
6 / 6 / 3
Регистрация: 17.10.2007
Сообщений: 1,119
|
|||||||||||
| 23.09.2006, 02:52 | |||||||||||
|
Как вариант, можно использовать ХМЛ/АДО для достижения этой цели. Его исполнение наверно самое быстрое, но я не сравнивал.
1. Поставьте на лист кнопку и макро для нее:
3. В модуль скопируйте:
Одно слово предупреждения: по-моему, код работает с однотипными данными, или только со строками, или только с числами. Сильно не проверял
0
|
|||||||||||
|
0 / 0 / 0
Регистрация: 25.05.2011
Сообщений: 27
|
|
| 25.09.2006, 15:44 [ТС] | |
|
To VladConn,
To rank1, Спасибо большое, сейчас буду разбираться. С уважением, Александр
0
|
|
|
2 / 2 / 1
Регистрация: 10.04.2011
Сообщений: 415
|
|
| 28.09.2006, 14:41 | |
|
Я не аудитор, но с 1997 года занимаюсь анализом ОС в целях оценки/переоценки. Так вот, ВСЕ проблемы с большими массивами решаются мною так:
1. Отключить автоматическое вычисление формул 2. Вставить колонку слева от всех данных и просто пронумеровать строки по порядку. Это позволит после любых манипуляций вернуть документу первоначальный вид 3. Для выделения дублирующихся ОС при отсутствии уникальных инвентарных номеров выполняю сортировку одновременно по 3-м критериям: шифр нормы амортизации, дата постановки на баланс, первоначальная (балансовая) стоимость. После сортировки повторы оказываются рядом. 4. Далее по выбору - либо макросом, либо просто на отдельном листе формулу"=если('данные'!A1='данные'!A2,1, "")", и "Сервис/Параметры/Вычисления/Пересчет листа" (чтобы не пересчитывать основной с кучей формул). 5. Копировать полученные 1 и пустоты и выполнить"вставка значений" на листе данных. 6. Сортировка по вновь вставленному столбцу - все повторы оказутся внизу. Там их можно выделить цветом, например. 7. Сортировка по самому левому столбцу для возврата в исходный вид 8. Удаление первого и последнего столбцов и включение автоматического пересчета. ВСЁ - мы получили исходные данные, как они были, но все повторы выделены нужным образом! При желании несложно описанный алгоритм оформить макросом, но это только если действительно часто приходится такое делать, и столбцы с определенными данными (балансовая, шифр, дата) находятся на фиксированных позициях
0
|
|
| 28.09.2006, 14:41 | |
|
Выбор повторяющихся значений из массива
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|