|
SaNo
|
|
Excel Поиск уникальных строк17.08.2011, 19:19. Показов 6257. Ответов 19
Метки нет (Все метки)
Дано
Таблица с N колонок и сколько-то строк (много) Нужен скрипт, который бы определял все ли ячейки в указанной колонке уникальны. Если есть неуникальные ячейки надо это пометить (я так думаю, что надо создать рядом колонку и пронумеровать дублирующиеся ячейки) Может кто-нибудь подскажет алгоритм дейстивий, чтобы это сделать через VBA? Можно выложить схожий скриптик, если не затруднит. |
|
| 17.08.2011, 19:19 | |
|
Ответы с готовыми решениями:
19
Конкатенация и последующее копирование уникальных строк по условию
|
|
2 / 2 / 1
Регистрация: 10.04.2011
Сообщений: 415
|
|
| 18.08.2011, 11:02 | |
|
Делал такое вручную, следовательно, можно и автоматизировать:
1.Добавляешь еще 2 колонки. В первую - номера по порядку, вторая пока пустая (далее служебная). 2.Сортируешь весь диапазон по колонке, в которой хочется найти дубли. 3.В служебную колонку во вторую строку данных пишешь формулу: =если(X2=X1;'X','') где Х1 и Х2 - в колонке с дублями (Х заменишь нужной буквой) 4.Заполняешь этой формулой вниз до конца простым копированием или Ctrl+D 5.Выделяешь всю служебную колонку и выполняешь над ней две операции: Правка/Копировать и Правка/Специальная вставка/Значения 6. Сортируешь все данные по колонке с порядковыми номерами (чтобы вернуть прежнее расположение. 7.Удаляешь колонку с порядковыми номерами (если она больше не нужна. В итоге дублированные данные будут помечены в служебной колонке значком 'X'
0
|
|
|
1 / 1 / 0
Регистрация: 09.05.2011
Сообщений: 20
|
||||||
| 18.08.2011, 16:57 | ||||||
|
По быстрому
0
|
||||||
|
2 / 2 / 1
Регистрация: 10.04.2011
Сообщений: 415
|
|
| 18.08.2011, 18:10 | |
|
Гы, 2 вложенных цикла с доступом к ячейкам - по-быстрому при 1000 строк работать будет...
0
|
|
|
Messir
|
|
| 18.08.2011, 18:13 | |
|
Уж лучше тогда коллекцию использовать, там, во-первых, хеширование какое-никакое, а во-вторых, уникальность значений обеспечивается автоматически...
|
|
|
Сумрак
|
|
| 19.08.2011, 07:27 | |
|
Уникальные Ячейки.. что это значит? Может уникальные значения? если да то тип данных какой? Как их сравнивать?
|
|
|
Сумрак
|
||||||
| 19.08.2011, 07:40 | ||||||
|
ето будет работать, если тип(подтип варианта)Данных в ячейках одинаковый.
|
||||||
|
Сумрак
|
|
| 19.08.2011, 07:50 | |
|
>> .UsedRange.columns(1).cellse
если по 1 столбцу нужно |
|
|
SaNo
|
|||||||||||
| 24.08.2011, 17:02 | |||||||||||
|
to Сумрак
или так надо:
|
|||||||||||
|
Сумрак
|
|
| 26.08.2011, 03:09 | |
|
Это выглядит так
Dim myDic As NEW Dictionary |
|
|
Сумрак
|
|
| 26.08.2011, 11:51 | |
|
В ссылках голочка стоит напротив Scrrun.dll?
|
|
|
Сумрак
|
|
| 26.08.2011, 11:53 | |
|
Set myDic = new... эквивалентно Dim myDic New...
Все должно работать если у Вас есть Вышеуказанная библиотека. и ссылка на ней стоит. |
|
|
0 / 0 / 0
Регистрация: 18.07.2011
Сообщений: 117
|
|
| 29.08.2011, 14:34 | |
|
к Сумраку, а что в myDic.Exists(mV.Value) уже каким-то образом есть данные для сравнения? не понятно?
у меня помечаются вообще все данные на листе. Я так понимаю если сравниваем 2 столбца, то используем UsedRange.columns(1).cells Это один столбец, где второй? что сравниваем, подскажи плиз?
0
|
|
|
SaNo
|
|||||||||||
| 29.08.2011, 17:21 | |||||||||||
|
поменяй в его коде строчку
myDic объект, который состоит из пар 'ключ' - 'значение', как хэш. заполняем его ключи - значениями из колонки. Если ключ в myDic есть (myDic.Exists(mV.Value) = True) , то это значит что значение уже встречалось в столбце - изменяем цвет этой ячейки. Иначе (если ключа нет, то добавляем его) myDic.Add mV.Value, '' т.е. добавляет значение с ключем mV.Value и значением '' |
|||||||||||
|
SaNo
|
||||||
| 29.08.2011, 17:34 | ||||||
|
я попытался модифицировать скрипт, работает так:
устанавливаете кусор на то место откуда в колонке надо находить повторяющиеся значения, вызываете скрипт, создается рядом колонка, в которой проставляются номера - повторяющиеся ячейки имеют один и тот же номер, и соответсвенно помечаются цветом. нам так удобнее для работы. Может есть какие-то лишние действия или что-то сделано через задницу - простите, я не программирую на VBA, но скрипт работает )
|
||||||
|
0 / 0 / 0
Регистрация: 18.07.2011
Сообщений: 117
|
||||||
| 29.08.2011, 18:34 | ||||||
|
Народ я может под конец дня совсем плохо соображаю, но:
имею колонку с текстом, копирую, вставляю рядом, в трех вставленных строках меняю значения запускаю код SaNo, результат все уникальные, нет повторов, нет пустых. Этот пример с myDic работает что ли только если все даннные в одном столбце???. в таком коде:
а если мне надо сравнить два столбца на разных листах??? Помогите пожалуйста разобраться, чую что это быстрее циклической проверки каждой ячейки
0
|
||||||
|
1 / 1 / 0
Регистрация: 09.05.2011
Сообщений: 20
|
||||||
| 30.08.2011, 10:38 | ||||||
|
1.Для одного листа - немного измени прогу Сумрака Дата: 11.06.2005 07:03
0
|
||||||
|
1 / 1 / 0
Регистрация: 09.05.2011
Сообщений: 20
|
|
| 30.08.2011, 10:47 | |
|
q = q изъять.
0
|
|
|
Сумрак
|
|
| 31.08.2011, 13:54 | |
|
>> Нужен скрипт, который бы определял все ли ячейки в указанной колонке уникальны. Если есть неуникальные ячейки надо это пометить...
Код для этого варианта вопроса работает... если нужен код для сравнения значений одного столбца, со значением другого столбца в другой книге(листе). то это уже другой вопрос. В этом варианте необходимо уточнить... являются ли в искомой таблице строки уникальными или есть повторение. Просто код получается на другом принципе основанным. В таком варианте я использую Find set R=... find(...) if not R is Nothing then ... тут код else ... тут код end if Он тоже быстро работает... но он по сложнее и по капризнее... |
|
|
Сумрак
|
|
| 31.08.2011, 14:01 | |
|
to SaNo СПС
Я както проморгал. ошибся я тут. извините. просто я на живую код сюда вписываю. мог ошибится. SaNo правильно уточнил, если true, то найден ключ. |
|
| 31.08.2011, 14:01 | |
|
Помогаю со студенческими работами здесь
20
Поиск уникальных значений по двум колонкам Сравнение, поиск, и выделение уникальных значений Поиск уникальных значений в динамическом массиве с переносом их другой лист
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|