Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.10.2010, 11:53   #1
hloppel
Пользователь
 
Регистрация: 06.05.2010
Сообщений: 13
По умолчанию Как отметить совпадения

Есть простая табличка. Необходимо В столбце А найти и отметить совпадения.Возможно ли что бы проверка происходила сразу прои вводе значеий?
P.S
Ячейки в столбце А в текстовом формате
Вложения
Тип файла: zip example.zip (45.1 Кб, 23 просмотров)
hloppel вне форума Ответить с цитированием
Старый 25.10.2010, 12:22   #2
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,170
По умолчанию

Сперва дубликаты выберите, их там 66:
Код:
Option Explicit

Sub FindDBL()
Dim x, y(), i As Long
Application.ScreenUpdating = False
x = Range("A2:A" & Cells(Rows.Count, 1).End(xlUp).Row).Value
ReDim y(1 To UBound(x), 1 To 1)
With New Collection
On Error Resume Next
For i = 1 To UBound(x, 1)
Err.Clear
.Add Item:=0, Key:=CStr(x(i, 1))
If Err <> 0 Then y(i, 1) = "дубль"
Next i
End With
[e2].Resize(UBound(x, 1)).Value = y
Application.ScreenUpdating = True
End Sub
Потом можно этот код подкрутить на проверку введённого значения, а можно и стандартную проверку ввода с СЧЁТЕСЛИ()/COUNTIF() использовать, но на такое количество я бы юзал макрос.
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 25.10.2010 в 12:34.
Hugo121 вне форума Ответить с цитированием
Старый 25.10.2010, 12:37   #3
EugeneS
Форумчанин
 
Регистрация: 06.08.2009
Сообщений: 472
По умолчанию

поиск дубликатов при вводе: http://office.microsoft.com/ru-ru/ex...in=EC001022986
EugeneS вне форума Ответить с цитированием
Старый 27.10.2010, 14:03   #4
hloppel
Пользователь
 
Регистрация: 06.05.2010
Сообщений: 13
По умолчанию Все отлично, но...

Цитата:
Сообщение от Hugo121 Посмотреть сообщение
Сперва дубликаты выберите, их там 66:
Код:
Option Explicit

Sub FindDBL()
Dim x, y(), i As Long
Application.ScreenUpdating = False
x = Range("A2:A" & Cells(Rows.Count, 1).End(xlUp).Row).Value
ReDim y(1 To UBound(x), 1 To 1)
With New Collection
On Error Resume Next
For i = 1 To UBound(x, 1)
Err.Clear
.Add Item:=0, Key:=CStr(x(i, 1))
If Err <> 0 Then y(i, 1) = "дубль"
Next i
End With
[e2].Resize(UBound(x, 1)).Value = y
Application.ScreenUpdating = True
End Sub
Потом можно этот код подкрутить на проверку введённого значения, а можно и стандартную проверку ввода с СЧЁТЕСЛИ()/COUNTIF() использовать, но на такое количество я бы юзал макрос.
он тока не показывает что с чем совпало.....
hloppel вне форума Ответить с цитированием
Старый 27.10.2010, 14:42   #5
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,170
По умолчанию

Хотите знать, с каой строкой совпало? (ибо с чем - это и так понятно)
Тогда типа так можно:
Код:
If Err <> 0 Then y(i, 1) = "дубль со строкой " & i+1
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 27.10.2010, 15:00   #6
hloppel
Пользователь
 
Регистрация: 06.05.2010
Сообщений: 13
По умолчанию

имелось ввиду что бы отмечалось, какая строка с какой совпадает. т.е ели номер 1235 в первой строке, и 12345 в строке 4565, что бы отметил и певую строку и 4565
hloppel вне форума Ответить с цитированием
Старый 28.10.2010, 09:45   #7
vikttur
Участник клуба
 
Регистрация: 16.05.2010
Сообщений: 1,249
По умолчанию

Выделить можно условным форматированием:
Код:
=СЧЁТЕСЛИ($A$2:$A$15;A2)>1
Но это тормоза.
Можно не выделять, а проверять при вводе. В столбце А меню Данные-Проверка-Параметры-Тип_данных-Другой, формула:
Код:
=НЕ(ЕЧИСЛО(ПОИСКПОЗ(A2;$A$1:A1;0)))
Если выше есть дубликат введенного, то орет сообщением.
vikttur вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
отметить точку пересечения двух линий диаграммы vAdiM_Kubski Microsoft Office Excel 0 05.05.2010 22:02
Как отметить несколько строк для выполнения макроса Vitaliy87 Microsoft Office Excel 8 07.02.2010 15:17
stringgrid,сравнение двух столбцов на совпадения и не совпадения betirsolt БД в Delphi 7 19.01.2010 15:09
tCheckListBox-Как отметить некотрые item-ы в design time? Altera Компоненты Delphi 9 17.12.2008 07:19
как вывести факт совпадения? Dennikid Общие вопросы Delphi 0 29.10.2008 16:05