Сравнение двух списков при помощи Excel и VBA

20 декабря 2015, воскресение | просмотров: 2859 | автор: Главный администратор

Приветствую, уважаемые читатели! Очень часто на работе ко мне обращаются с просьбой сравнить два списка по какому-то уникальному полю и отметить "галочками" совпадения. Требуется это, например, для того чтобы отследить индивидуальных предпринимателей, пенсионеров и застрахованных лиц по каким-либо критериям. Чаще всего эти списки предоставляются мне в Excel-формате.

Я свожу задачу к сохранению двух списков в одной Excel-книге.



Сравнение двух списков при помощи Excel и VBA



На первый лист я помещаю Список1. На второй лист - Список2

Столбец A у меня обязательно содержит уникальное поле. Это может быть ФИО, Страховой номер индивидуального лицевого счета (СНИЛС), ИНН, номер организации, порядковый номер, номер учетного дела и т.п.

Третий лист - это лист результатов. В нем отобразятся результаты сравнения двух списков при помощи Excel.

Затем я, нажав Alt-F11, захожу в редактор Visual Basic и два раза нажимаю на кнопку "Лист3".



Сравнение двух списков при помощи Excel и VBA



Справа отобразится редактор кода. Там я использую написанный мной VBA-код:


Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
Sheets(3).Cells.Clear
Sheets(3).Cells(3, 1) = "ЕСТЬ ТОЛЬКО В ПЕРВОМ СПИСКЕ"
Sheets(3).Cells(3, 4) = "ЕСТЬ ТОЛЬКО ВО ВТОРОМ СПИСКЕ"
Sheets(3).Cells(3, 7) = "ЕСТЬ В ОБОИХ СПИСКАХ"
Y1 = 4
Y2 = 4
Y3 = 4

For Y = 1 To Sheets(1).UsedRange.Rows.Count
Set R = Sheets(2).Range("A:A").Find(Sheets(1).Cells(Y, 1))
If R Is Nothing Then
Y1 = Y1 + 1
Sheets(3).Cells(Y1, 1) = Sheets(1).Cells(Y, 1)
Else
Y3 = Y3 + 1
Sheets(3).Cells(Y3, 7) = Sheets(1).Cells(Y, 1)
End If
Next

For Y = 1 To Sheets(2).UsedRange.Rows.Count
Set R = Sheets(1).Range("A:A").Find(Sheets(2).Cells(Y, 1))
If R Is Nothing Then
Y2 = Y2 + 1
Sheets(3).Cells(Y2, 4) = Sheets(2).Cells(Y, 1)
End If
Next

MsgBox "Выполнено полностью", vbInformation
End
End Sub




Сравнение двух списков при помощи Excel и VBA



Для удобства пользования на третий лист добавил кнопку, которая запускает созданный макрос сравнения.



Сравнение двух списков при помощи Excel и VBA



Нажав на нее, начнется процесс сравнения. По его завершению отобразится соответствующее информационное окно.



Сравнение двух списков при помощи Excel и VBA



Результат в удобной форме:



Сравнение двух списков при помощи Excel и VBA



После сравнения множества списков в рабочей обстановке обычный офисный компьютер показал впечатляющие результаты: список из 3000 записей обрабатывается менее минуты. Это заслуга макроса.




Скачать


Понравилась публикация? Поддержи сайт, поделись записью внизу страницы !


Комментариев нет.




Только подтвержденные пользователи могут оставлять комментарии.

Поделиться страницей в социальных сетях



Поделиться ВКонтакте Поделиться Facebook Поделиться Одноклассники Поделиться Twitter Поделиться Google+
Просмотр изображения