Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Сравнение 3 столбцов на наличе дублей и удаление - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Сравнение 3 столбцов на наличе дублей и удаление
Silwer Дата: Среда, 06.09.2017, 12:45 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 1
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Всем здравствуйте.Уважаемые форумчане помогите реализовать данную задачу. Есть 3 столбца со значениями необходимо сравнить по первому столбцу наличие дубликатов во втором и в третьем столбце В итоге должно остаться 1 столбец не тронутый второй и третий без дублей Пример прикладываю
Нашел вот такой макрос но он сравнивает и удаляет только по двум столбцам Sub Main()
[ Dim i As Long, j As Long, x As New Collection, a(), b(), c()
Application.ScreenUpdating = False
a = Range([A1], Cells(Rows.Count, "A").End(xlUp)).Value
b = Range([B1], Cells(Rows.Count, "B").End(xlUp)).Value
On Error Resume Next
For i = 1 To UBound(a, 1): x.Add a(i, 1), CStr(a(i, 1)): Next
On Error GoTo 0: ReDim c(1 To UBound(b, 1), 1 To 1): j = 1
For i = 1 To UBound(b, 1)
On Error Resume Next: x.Add b(i, 1), CStr(b(i, 1))
If Err = 0 Then
c(j, 1) = b(i, 1): j = j + 1
Else: On Error GoTo 0
End If
Next
Range([B1], Cells(UBound(c, 1), "B")).Value = c
End Sub ]
К сообщению приложен файл: 4014846.xlsx (8.6 Kb)


Сообщение отредактировал Silwer - Среда, 06.09.2017, 12:50
 
Ответить
СообщениеВсем здравствуйте.Уважаемые форумчане помогите реализовать данную задачу. Есть 3 столбца со значениями необходимо сравнить по первому столбцу наличие дубликатов во втором и в третьем столбце В итоге должно остаться 1 столбец не тронутый второй и третий без дублей Пример прикладываю
Нашел вот такой макрос но он сравнивает и удаляет только по двум столбцам Sub Main()
[ Dim i As Long, j As Long, x As New Collection, a(), b(), c()
Application.ScreenUpdating = False
a = Range([A1], Cells(Rows.Count, "A").End(xlUp)).Value
b = Range([B1], Cells(Rows.Count, "B").End(xlUp)).Value
On Error Resume Next
For i = 1 To UBound(a, 1): x.Add a(i, 1), CStr(a(i, 1)): Next
On Error GoTo 0: ReDim c(1 To UBound(b, 1), 1 To 1): j = 1
For i = 1 To UBound(b, 1)
On Error Resume Next: x.Add b(i, 1), CStr(b(i, 1))
If Err = 0 Then
c(j, 1) = b(i, 1): j = j + 1
Else: On Error GoTo 0
End If
Next
Range([B1], Cells(UBound(c, 1), "B")).Value = c
End Sub ]

Автор - Silwer
Дата добавления - 06.09.2017 в 12:45
китин Дата: Среда, 06.09.2017, 12:47 | Сообщение № 2
Группа: Модераторы
Ранг: Экселист
Сообщений: 7034
Репутация: 1079 ±
Замечаний: 0% ±

Excel 2007;2010;2016


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852
 
Ответить
Сообщение Как оформлять сообщения?

Автор - китин
Дата добавления - 06.09.2017 в 12:47
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2025 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!