Option Explicit
Sub GPE()
Dim I&, Kq(), DL(), Nguon(), Itm, Dic As Object
With Sheet1
DL = Range(.[A3], .[A65000].End(3)).Resize(, 6).Value
End With
With Sheet2
Nguon = Range(.[A16], .[A65000].End(3)).Resize(, 3).Value
ReDim Kq(1 To UBound(Nguon), 1 To 2)
Set Dic = CreateObject("Scripting.dictionary")
For I = 1 To UBound(DL)
Itm = DL(I, 2) & "-" & UCase(DL(I, 1))
If Not Dic.exists(Itm) Then
Dic.Add Itm, I
End If
Next I
For I = 1 To UBound(Nguon)
Itm = Nguon(I, 1) & "-" & Nguon(I, 2)
If Dic.exists(Itm) Then
If Nguon(I, 3) = "Y" Then
Kq(I, 1) = Mid(DL(Dic.Item(Itm), 6), 2, 2)
Kq(I, 2) = Right(DL(Dic.Item(Itm), 6), 2)
Else
Kq(I, 1) = Right(DL(Dic.Item(Itm), 6), 2)
Kq(I, 2) = Mid(DL(Dic.Item(Itm), 6), 2, 2)
End If
End If
Next I
.[D16:D65000].ClearContents
.[D16].Resize(I - 1, 2) = Kq
Set Dic = Nothing
End With
End Sub