Lấy thông tin của thủ kho có nhiều tên giống nhau và cùng ở một ô

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

Phương Phương mito

Thành viên thường trực
Tham gia
1/5/19
Bài viết
275
Được thích
65
Em chào anh chị và các bạn,
Em có trường hợp này làm dở chưa ra được kết quả cuối cùng mong muốn nhờ mọi người giúp đỡ ạ. Em đang học về mảng và ReDim Preserve. Tại Bang1: Em có các mã hàng duy nhất tại cột A kèm theo các tên thủ kho như định dạng cột B (Nhiều thủ kho trong một ô). Tại Thong_tin em có danh sách các thủ kho khác nhau dù có trùng tên với nhau. Mục đích em muốn lấy thông tin như code em làm dở và ví dụ kết quả mong muốn tại ô C2 tại sheet Bang1 như em miêu tả tại ô E2. Em chưa ra đượcc kết quả với các ô tại cột B mà có nhiều thủ kho cùng một ô. Mong Anh chị giúp hoàn thiện nốt code ạ. Em cảm ơn ạ.
 

File đính kèm

  • Lay thong tin thu kho co cung ten.xlsm
    20.8 KB · Đọc: 18
Em chào anh chị và các bạn,
Em có trường hợp này làm dở chưa ra được kết quả cuối cùng mong muốn nhờ mọi người giúp đỡ ạ. Em đang học về mảng và ReDim Preserve. Tại Bang1: Em có các mã hàng duy nhất tại cột A kèm theo các tên thủ kho như định dạng cột B (Nhiều thủ kho trong một ô). Tại Thong_tin em có danh sách các thủ kho khác nhau dù có trùng tên với nhau. Mục đích em muốn lấy thông tin như code em làm dở và ví dụ kết quả mong muốn tại ô C2 tại sheet Bang1 như em miêu tả tại ô E2. Em chưa ra đượcc kết quả với các ô tại cột B mà có nhiều thủ kho cùng một ô. Mong Anh chị giúp hoàn thiện nốt code ạ. Em cảm ơn ạ.
Ý tưởng của bạn là như nào mà kêu hoàn thiện nốt cho bạn
 
Upvote 0
Em chào anh chị và các bạn,
Em có trường hợp này làm dở chưa ra được kết quả cuối cùng mong muốn nhờ mọi người giúp đỡ ạ. Em đang học về mảng và ReDim Preserve. Tại Bang1: Em có các mã hàng duy nhất tại cột A kèm theo các tên thủ kho như định dạng cột B (Nhiều thủ kho trong một ô). Tại Thong_tin em có danh sách các thủ kho khác nhau dù có trùng tên với nhau. Mục đích em muốn lấy thông tin như code em làm dở và ví dụ kết quả mong muốn tại ô C2 tại sheet Bang1 như em miêu tả tại ô E2. Em chưa ra đượcc kết quả với các ô tại cột B mà có nhiều thủ kho cùng một ô. Mong Anh chị giúp hoàn thiện nốt code ạ. Em cảm ơn ạ.
Thử code sau . . :
Mã:
Sub abc()
Dim i&, j&, a(), b(), c(), tmp, s$
Dim Dic As Object
Set Dic = CreateObject("Scripting.Dictionary")
With Sheets("Thong_tin")
    a = .Range("A2:C" & .Cells(Rows.Count, "A").End(xlUp).Row).Value
    For i = 1 To UBound(a)
        Dic(a(i, 1)) = Dic(a(i, 1)) & Chr(10) & "-|: " & a(i, 3) & ", " & a(i, 2)
    Next
End With

With Sheets("Bang1")
    b = .Range("B2:B" & .Cells(Rows.Count, "B").End(xlUp).Row).Value
    ReDim c(1 To UBound(b), 1 To 1)
    For i = 1 To UBound(b)
        tmp = Split(b(i, 1), Chr(10))
        s = vbNullString
        For j = 0 To UBound(tmp)
            If Dic.exists(tmp(j)) Then
                s = s & Chr(10) & Replace(Mid(Dic(tmp(j)), 2), "|", tmp(j))
            End If
        Next
        If Len(s) Then c(i, 1) = Mid(s, 2)
    Next
    .Range("C2").Resize(UBound(c), 1) = c
End With
End Sub
 
Upvote 0
Nếu bạn chịu khó tạo cho mỗi thủ kho 1 mã duy nhất thì đâu đến nổi phải lên hỏi ở diễn đàn!
Ví dụ:

Thu_khoMã TKĐịa chỉnăm sinh
BUI BAI BINHBBB00VT1994
HO VAN PHUOCHVP00BN1954
HOANG NGOCHJN00VT1975
HUYNH BAO LOCHBL00LA1994
HUYNH KIM LYHKL00BD1974
HUYNH KIM LYHKL01CT1987
HUYNH THỊ KIM LYHKL02KG1987
LE THI BAOLTB00QT1994
LE VAN BINHLVB00PT1999
LE VAN LUYENLVL00BL1999
LY NAM DINHLND00TTH1990
NGUYEN THI XUYENNTX00QB1996
NGUYEN VAN ĐANVF00Quận 11992
NGUYEN VAN ĐANVF01Quan 41994
TRAN HOANG BYTHT00HN1984
TRAN THI TUYENTTT00HB1965
TRAN THI TIENTTT011959
TRAN VAN ONTVO00CT1986
VU BA THEVBT00ST1996
VU VAN HOAVVH00CT1978
VU VAN HOAVVH01QN1965
 
Lần chỉnh sửa cuối:
Upvote 0
Thử code sau . . :
Mã:
Sub abc()
Dim i&, j&, a(), b(), c(), tmp, s$
Dim Dic As Object
Set Dic = CreateObject("Scripting.Dictionary")
With Sheets("Thong_tin")
    a = .Range("A2:C" & .Cells(Rows.Count, "A").End(xlUp).Row).Value
    For i = 1 To UBound(a)
        Dic(a(i, 1)) = Dic(a(i, 1)) & Chr(10) & "-|: " & a(i, 3) & ", " & a(i, 2)
    Next
End With

With Sheets("Bang1")
    b = .Range("B2:B" & .Cells(Rows.Count, "B").End(xlUp).Row).Value
    ReDim c(1 To UBound(b), 1 To 1)
    For i = 1 To UBound(b)
        tmp = Split(b(i, 1), Chr(10))
        s = vbNullString
        For j = 0 To UBound(tmp)
            If Dic.exists(tmp(j)) Then
                s = s & Chr(10) & Replace(Mid(Dic(tmp(j)), 2), "|", tmp(j))
            End If
        Next
        If Len(s) Then c(i, 1) = Mid(s, 2)
    Next
    .Range("C2").Resize(UBound(c), 1) = c
End With
End Sub
Code hay quá và chạy đúng rồi ạ. Em học được thêm cách giải mới ạ ! Em cảm ơn anh ạ!
Bài đã được tự động gộp:

Nếu bạn chịu khó tạo cho mỗi thủ kho 1 mã duy nhất thì đâu đến nổi phải lên hỏi ở diễn đàn!
Ví dụ:

Thu_khoMã TKĐịa chỉnăm sinh
BUI BAI BINHBBB00VT1994
HO VAN PHUOCHVP00BN1954
HOANG BAO NGOCHBN00VT1975
HUYNH BAO LOCHBL00LA1994
HUYNH KIM LYHKL00BD1974
HUYNH KIM LYHKL01CT1987
HUYNH KIM LYHKL02KG1987
LE THI BAOLTB00QT1994
LE VAN BINHLVB00PT1999
LE VAN LUYENLVL00BL1999
LY NAM DINHLND00TTH1990
NGUYEN THI XUYENNTX00QB1996
NGUYEN VAN ĐANVF00Quận 11992
NGUYEN VAN ĐANVF01Quan 41994
TRAN HOANG BYTHT00HN1984
TRAN THI TUYENTTT00HB1965
TRAN THI TIENTTT011959
TRAN VAN ONTVO00CT1986
VU BA THEVBT00ST1996
VU VAN HOAVVH00CT1978
VU VAN HOAVVH01QN1965
Dạ không ạ. Thực tế nguồn số liệu em làm nó không có mã của tên thủ kho ạ. Mà đang phải tìm duy nhất được theo tên thôi ạ. Sau đó từ tên và thông tin chung đó mới nhìn bằng mắt và đưa ra phán đoán sau đó anh ạ. thực tế số liệu hiện có là thế ạ
 
Upvote 0
. . . . Thực tế nguồn số liệu em làm nó không có mã của tên thủ kho ạ. Mà đang phải tìm duy nhất được theo tên thôi ạ. Sau đó từ tên và thông tin chung đó mới nhìn bằng mắt và đưa ra phán đoán sau đó anh ạ. thực tế số liệu hiện có là thế ạ
/(/hưng bạn hoàn toàn có khả năng tạo mã duy nhất ở trang 'ThongTin' cơ mà; Ai không cho bạn báo ngay với mình, để mình ném đá cho hắn đến chết cho coi!
 
Upvote 0
/(/hưng bạn hoàn toàn có khả năng tạo mã duy nhất ở trang 'ThongTin' cơ mà; Ai không cho bạn báo ngay với mình, để mình ném đá cho hắn đến chết cho coi!
Hắn là cả một hệ thống số liệu lằng nhằng và em cũng tham gia vào việc gỡ rối ạ.hihi.Em cảm ơn anh đã cho gợi ý thêm ạ !
 
Upvote 0
Upvote 0
Code hay quá và chạy đúng rồi ạ. Em học được thêm cách giải mới ạ ! Em cảm ơn anh ạ!
...
Code chạy đúng thì dùng. Chứ cái chuyện "học được thêm" thì cần suy nghĩ lại.
Hiện tại bạn đã biết tại sao Redim Reserve của bạn nó ra sao chưa? Dùng khong được hay được? và dùng ra sao mới đúng?
Cái cũ chưa thấy thấm đã lo học cái mới.
 
Upvote 0
Web KT
Back
Top Bottom