Tìm mã hàng hóa từ bảng 1 gán cho bảng 2 theo tên hàng hóa gần giống

Chia sẻ bởi:hands
★★★★★
Quảng cáo

Em dở excel quá, mà em đang có nhu cầu tìm mã hàng của 2 bảng dữ liệu excel, 1 bảng thì có đầy đủ mã hàng, tên hàng. Còn 1 bảng thì chỉ có tên hàng mà không có mã hàng. mà đặt biệt tên hàng hóa nó na ná giống 1 số chữ so với bảng có đầy đủ mã và tên hàng. Giờ em muốn tìm mã để gán vào mà khó quá.
Nên em xin phép upfile excel có mô tả ở trong file excel lên diễn đàn để nhờ sự giúp đỡ của Anh/Chị xem qua giúp em giải quyết vấn đề với ạ. viết công thức cũng được hay VBA code cũng được ah. Miễn làm sao ra được kết quả là tốt rồi ạ
Cảm ơn Anh/chị rất nhiều.

Bạn sửa tiêu đề do vi phạm nội quy của diễn đàn.
Thấy cái của bạn làm ngược kiểu gì thế nhỉ?
Na ná là thế nào? Có chăng thì kết quả thế nào cũng có cái không đúng à

Dạ. Nó ngược ngược Anh ạ. Do tên hàng hóa có phần giống nhau nên cũng khó.

Nguyên tắc tạo mã hàng hóa của chủ bài đăng là chưa hợp lý & đang xài 2ui trình ngược;
(1) Chưa hợp lý ở chỗ: Mã hàng luôn có 2 chữ cái trùng nhau; Điều này chả nói lên điều gì & chỉ gây lãng phí nguồn lực mà thôi.
Nên vứt bỏ 2 ký tự này ra khỏi bộ mã HH của bạn & thay bằng, ví dụ

Mã HH
Tên HH

R_000
Rau ăn lá

R_001
Cải ngọt

R_002
Dền xanh

R_003
Bắp cải

C_000
Các loại củ

C_001
Su hào

C_002
Khoai tây

C_003
Cà rốt

Q_000
Các loại quả

Q_001
Bí đỏ

Q_002
Bí hồ lô

Q_003
Mướp

TF000
Thịt heo

TF001
Heo nạt

Bo000
Thịt bò

Bo001
Bắp bò

Ca000
Cá các loại

Ca001
Cá chép

Ca002
Lươn

(2) Một khi đã có bộ mã qui ước thì:
Hàng nào mới về đều được gán mã
& quan trọng nhất là xài chủ yếu là mã, tên hàng hóa lúc này giống như chú thích cho mã HH mà thôi.
Thứ nữa là ta sẽ không bao giờ sai chính tả ngớ ngẩn khi nhập liệu

Thử cái này tại F3 rồi kéo xuống:

=IFERROR(LOOKUP(2,1/SEARCH(TRIM($B$3:$B$4),TRIM(G3)),$A$3:$A$4),"HH"&TEXT(AGGREGATE(14,6,RIGHT($A$3:$A$4,3)+0,1)+1,"000"))

Bạn chạy code dưới và kiểm tra kết quả lại nha!
Chú ý: kết quả đang trả về ở cột E

Sub GPE()
    Dim Dic As Object, Key$, i&, j&, k&, Arr()
    Dim Lr&, a&, Th$, Kt$, Res(1 To 100, 1 To 1)
    Set Dic = CreateObject("Scripting.Dictionary")
    On Error Resume Next
    With Sheets("Sheet1")
        .Range("E:E").ClearContents
        Lr = .Range("G" & Rows.Count).End(xlUp).Row
        With Sheets("Sheet1").Range("F2:H" & Lr)
            .Sort .Cells(2, 2), 1, Header:=xlGuess
        End With
        Arr = .Range("G3:G" & Lr).Value
        For i = 1 To UBound(Arr)
            If Arr(i, 1) <> "" Then
                For a = 1 To Len(Arr(i, 1))
                    Kt = Mid(Arr(i, 1), a, 1)
                    If Kt <> " " Then
                        Th = Th & Kt
                    End If
                Next a
            End If
            Key = Th
            If Not Dic.exists(Key) Then
                k = k + 1
                Dic.Add (Key), k
                Res(i, 1) = "HH" & Format(k, "000")
            Else
                Res(i, 1) = "HH" & Format(k, "000")
            End If
            Th = ""
        Next i
        .Range("E3").Resize(i, 1).Value = Res
    End With
    Set Dic = Nothing
    MsgBox "Done"
End Sub

1610
E có chạy thử thì có tạo mã HH001 – HH004 hà Bác. không như kết quả ở cột F ạ.
Code của Bác là sắp xếp lại theo kiểu A B C ở cột G luôn á. Bác xem lại giúp em với ạ. Cảm ơn bác

Bài 1 bạn có giải thích sự khác nhau "tương đối" giữa tên hàng ở đây là có/không có dấu cách thôi mà.
Theo hình trên thì và code hiểu là 2 tên hàng khác nhau.
Do code nối các ký tự trong tên hàng để so sánh (không xét có/không có dấu cách)

=IFERROR(INDEX($A$1:$C$7;MATCH(1;(SEARCH($B$3:$B$7;G3)))+2;0);"HH"&TEXT(SUM(1/COUNTIF($F$1:F2;$F$1:F2))-1;"000"))

Ctrl + Shift + Enter

www.giaiphapexcel.com/diendan/threads/t%C3%ACm-m%C3%A3-h%C3%A0ng-h%C3%B3a-t%E1%BB%AB-b%E1%BA%A3ng-1-g%C3%A1n-cho-b%E1%BA%A3ng-2-theo-t%C3%AAn-h%C3%A0ng-h%C3%B3a-g%E1%BA%A7n-gi%E1%BB%91ng.163788/

Xây dựng Lương 3P, KPI cho Doanh nghiệp
Khóa học SprinGO phù hợp

Xây dựng Lương 3P, KPI cho Doanh nghiệp

Làm thế nào để trả lương cho nhân viên chính xác nhất? Đây là một trong những câu hỏi khó trong quản trị nhân...

Xem khóa học
★★★★★ 5 ★ 1 👤 0 ▥ 0
Quảng cáo

Bạn nên đọc

Leave a Reply

Your email address will not be published. Required fields are marked *

Quảng cáo

Cũ vẫn chất

Xem thêm