Страницы: 1
RSS
сопоставление большого объема данных
 
вечер добрый!
подскажите, пожалуйста, как лучше поступить, мб макрос у кого завалялся, либо сталкивался с такой проблемой.
Есть файл с очень большим количеством данных, а именно строк. В файле на первом листе ФИО людей и в какой группе они находятся. Необходимо сопоставить эти данные с данными со второго листа, где ФИО людей и их должность. Можно было бы все сделать ручками, но первоначальный файл слишком большой, фамилии на первом листе повторяются.
Подскажите, как можно автоматизировать.
Заранее благодарю
 
Код
=ВПР(A2;Лист2!$A$2:$B$7;2)
 
OlZin,  и каждая фамилия на втором листе встречается один раз... Так?
 
AAF, да, на втором листе по одному разу
 
Код
Sub uuu()
    Dim a()
    Dim i&
    Dim sd As Object
'----------------------
    a = Sheets(2).UsedRange.Value
    Set sd = CreateObject("Scripting.Dictionary")
    For i = 2 To UBound(a)
        sd.Item(a(i, 1)) = a(i, 2)
    Next
    With Sheets(1)
        a = .UsedRange.Value
        For i = 2 To UBound(a)
            If sd.Exists(a(i, 1)) Then
                a(i, 4) = sd.Item(a(i, 1))
            End If
        Next
        .Cells(1, 1).Resize(UBound(a), UBound(a, 2)) = a
    End With
    Beep
    MsgBox "Готово!"
End Sub
 
Код
Sub DataAdd()
Dim d, a, i As Long
Set d = CreateObject("Scripting.Dictionary"): d.CompareMode = 1
With Sheets("Лист2").Cells(1, 1).CurrentRegion
  a = .Value
  For i = 1 To UBound(a)
    d(a(i, 1)) = a(i, 2)
  Next
End With
With Sheets("Лист1").Cells(1, 1).CurrentRegion
  a = .Value
  For i = 1 To UBound(a)
    a(i, 4) = d(a(i, 1))
  Next
  .Value = a
End With
End Sub
 
kalbasiatka, AAF, спасибо большое!
Страницы: 1
Наверх