Giúp mình Hàm/Code tìm kiếm với 2 hoặc nhiều điều kiện (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

concuarangme

Thành viên chính thức
Tham gia
6/1/09
Bài viết
97
Được thích
0
Mình có 1 file dữ liệu gồm 2 sheet (ThongTin và Ma Code)

Mình muốn dựa vào Tỉnh và Quận/huyện để điền mã code vào sheet thông tin

Do tên Quận/huyện của 64 tỉnh thành có thể bị trùng lặp

Ví dụ: huyện Châu Thành có ở nhiều Tỉnh

Mình dùng hàm vlookup thì chỉ tìm dc theo 1 điều kiện, hoặc hàm Lookup(2,1/()) của thầy ndu cũng chỉ làm dc với dữ liệu ít dòng nhiều quá thì chạy ko dc (file của mình > 10.000 dòng)

các thầy và các bạn giúp mình cách làm sao điền dc mã code vào sheet thông tin nhé.
xin cảm ơn nhiều.
 

File đính kèm

Mình có 1 file dữ liệu gồm 2 sheet (ThongTin và Ma Code)

Mình muốn dựa vào Tỉnh và Quận/huyện để điền mã code vào sheet thông tin

Do tên Quận/huyện của 64 tỉnh thành có thể bị trùng lặp

Ví dụ: huyện Châu Thành có ở nhiều Tỉnh

Mình dùng hàm vlookup thì chỉ tìm dc theo 1 điều kiện, hoặc hàm Lookup(2,1/()) của thầy ndu cũng chỉ làm dc với dữ liệu ít dòng nhiều quá thì chạy ko dc (file của mình > 10.000 dòng)

các thầy và các bạn giúp mình cách làm sao điền dc mã code vào sheet thông tin nhé.
xin cảm ơn nhiều.
Thử với code này xem sao, hổng biết sao lúc này hay bị "Đíc xông" hoài.
PHP:
Public Sub GPE()
Dim Rng(), Arr(), I As Long, J As Long, Tem As String, Dic As Object
Set Dic = CreateObject("Scripting.Dictionary")
With Sheets("Ma code")
    Rng = .Range(.[A2], .[A65000].End(xlUp)).Resize(, 3).Value
End With
    For I = 1 To UBound(Rng, 1)
            Tem = Rng(I, 1) & Rng(I, 2)
        If Not Dic.Exists(Tem) Then
            Dic.Add Tem, Rng(I, 3)
        End If
    Next I
With Sheets("ThongTin")
    Rng = .Range(.[C4], .[C65000].End(xlUp)).Resize(, 2).Value
    ReDim Arr(1 To UBound(Rng, 1), 1 To 1)
    For I = 1 To UBound(Rng, 1)
            J = J + 1: Tem = Rng(I, 1) & Rng(I, 2)
        If Dic.Exists(Tem) Then
            Arr(I, 1) = Dic.Item(Tem)
        Else
            Arr(I, 1) = "Chua co ma"
        End If
    Next I
    .[E4].Resize(J).Value = Arr
End With
Set Dic = Nothing
End Sub
 

File đính kèm

Upvote 0
Thử với code này xem sao, hổng biết sao lúc này hay bị "Đíc xông" hoài.
PHP:
Public Sub GPE()
Dim Rng(), Arr(), I As Long, J As Long, Tem As String, Dic As Object
Set Dic = CreateObject("Scripting.Dictionary")
With Sheets("Ma code")
    Rng = .Range(.[A2], .[A65000].End(xlUp)).Resize(, 3).Value
End With
    For I = 1 To UBound(Rng, 1)
            Tem = Rng(I, 1) & Rng(I, 2)
        If Not Dic.Exists(Tem) Then
            Dic.Add Tem, Rng(I, 3)
        End If
    Next I
With Sheets("ThongTin")
    Rng = .Range(.[C4], .[C65000].End(xlUp)).Resize(, 2).Value
    ReDim Arr(1 To UBound(Rng, 1), 1 To 1)
    For I = 1 To UBound(Rng, 1)
            J = J + 1: Tem = Rng(I, 1) & Rng(I, 2)
        If Dic.Exists(Tem) Then
            Arr(I, 1) = Dic.Item(Tem)
        Else
            Arr(I, 1) = "Chua co ma"
        End If
    Next I
    .[E4].Resize(J).Value = Arr
End With
Set Dic = Nothing
End Sub

cảm ơn bạn đã giúp mình, bạn cho mình hỏi là làm cách nào để code chạy được mà không cần phân biệt chữ hoa/chữ thường không bạn.

mình thử trong file của mình nếu có những tỉnh hoặc quận viết không đồng nhất thì code tìm không thấy.

ví dụ: Đồng Nai sẽ không tìm thấy được ĐồNG NAI

cảm ơn bạn nhiều.
 
Upvote 0
cảm ơn bạn đã giúp mình, bạn cho mình hỏi là làm cách nào để code chạy được mà không cần phân biệt chữ hoa/chữ thường không bạn.

mình thử trong file của mình nếu có những tỉnh hoặc quận viết không đồng nhất thì code tìm không thấy.

ví dụ: Đồng Nai sẽ không tìm thấy được ĐồNG NAI

cảm ơn bạn nhiều.
Tìm trong code chỗ nào có dòng này:
PHP:
Tem = Rng(I, 1) & Rng(I, 2)
thì thay bằng:
PHP:
Tem = Ucase(Rng(I,1) & Rng(I,2))
Thử xem.
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom