Dò mã sản phẩm theo tên hàng không đầy đủ chữ (1 người xem)

Liên hệ QC

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

phamgiang90

Thành viên mới
Tham gia
10/4/22
Bài viết
28
Được thích
0
Em chào anh chị trong nhóm, Sheet1 em có 1 cột Tên sản phẩm và 1 cột mã sản phẩm , và sheet2 em có sẵn tên sản phẩm ,nhưng tên sản phẩm này chỉ có 1 phần chữ giống với tên sản phẩm sheet1 kia, bây giờ em muốn dò tìm tên này để lấy mã sản phẩm, anh chị trong nhóm có cách nào dò mã giúp em với ạ, Em cám ơn anh chị ạ
 

File đính kèm

  • Book2.xlsm
    Book2.xlsm
    13.5 KB · Đọc: 14
  • 1650559338092.png
    1650559338092.png
    41.9 KB · Đọc: 26
  • 1650559362564.png
    1650559362564.png
    21.2 KB · Đọc: 27
Em chào anh chị trong nhóm, Sheet1 em có 1 cột Tên sản phẩm và 1 cột mã sản phẩm , và sheet2 em có sẵn tên sản phẩm ,nhưng tên sản phẩm này chỉ có 1 phần chữ giống với tên sản phẩm sheet1 kia, bây giờ em muốn dò tìm tên này để lấy mã sản phẩm, anh chị trong nhóm có cách nào dò mã giúp em với ạ, Em cám ơn anh chị ạ
Hai ví dụ cuối của bạn bị sai, lần sau ví dụ cho chuẩn nhé.
 

File đính kèm

Upvote 0
Vậy nếu trùng thì sẽ sai mã ngay, ý tưởng của bạn 99,99% là không khả thi.
do dữ liệu của em, 2 người nhập (1 người nhập gõ kiểu này, 1 người nhập kiểu khác), lên em thử lên đây hỏi xem anh chị trong nhóm có code VBA nào có thể dò tìm được không ạ
 
Upvote 0
do dữ liệu của em, 2 người nhập (1 người nhập gõ kiểu này, 1 người nhập kiểu khác), lên em thử lên đây hỏi xem anh chị trong nhóm có code VBA nào có thể dò tìm được không ạ
Dò thì chắc chắn thấy được và chắc chắn là trùng sẽ sai mã.
 
Upvote 0
do dữ liệu của em, 2 người nhập (1 người nhập gõ kiểu này, 1 người nhập kiểu khác), lên em thử lên đây hỏi xem anh chị trong nhóm có code VBA nào có thể dò tìm được không ạ
Phải triệt để từ trứng nước chứ dọn rác thế này có phải tự làm khổ bản thân không
 
Upvote 0
do dữ liệu của em, 2 người nhập (1 người nhập gõ kiểu này, 1 người nhập kiểu khác), lên em thử lên đây hỏi xem anh chị trong nhóm có code VBA nào có thể dò tìm được không ạ
Tóm lại trong công ty của bạn thằng đi làm thuê muốn làm thế nào cũng phải chấp nhận? Tôi mà là chủ thì tôi đẩy ngay ra đường. Còn nếu là nhân viên thì tôi báo cáo với sếp. Nếu sếp dung túng thì tôi cố chuyển việc. Ở lại chỉ là bất đắc dĩ thôi.
 
Upvote 0
Tóm lại trong công ty của bạn thằng đi làm thuê muốn làm thế nào cũng phải chấp nhận? Tôi mà là chủ thì tôi đẩy ngay ra đường. Còn nếu là nhân viên thì tôi báo cáo với sếp. Nếu sếp dung túng thì tôi cố chuyển việc. Ở lại chỉ là bất đắc dĩ thôi.
Vâng. Anh ạ .nhiều lúc bực mình lắm
Bài đã được tự động gộp:

Phải triệt để từ trứng nước chứ dọn rác thế này có phải tự làm khổ bản thân không
Vâng anh. Nhiều lúc khổ lắm anh ạ. Chỉ gõ thêm "-" là sai bét. Lại phải dò thủ công anh ạ
 
Upvote 0
Vâng. Anh ạ .nhiều lúc bực mình lắm

Vâng anh. Nhiều lúc khổ lắm anh ạ. Chỉ gõ thêm "-" là sai bét. Lại phải dò thủ công anh ạ
Nếu nhiệm vụ của bạn thì bạn nên có qui định và nhân viên phải làm theo. Mình thông cảm cho họ nhưng họ phải có kỷ luật.

Những chỗ nhập liệu cần chính xác thì bạn phải có code hiển thị vd. Form. Hiển thị tất cả các tên sản phẩm có trong cơ sở dữ liệu trong một danh sách. Mỗi khi người ta gõ một cụm từ nào đó vào ô tìm kiếm thì tìm trong csdl và chỉ hiện những dòng thỏa. Khi người ta chọn 1 trong những dòng thỏa thì lúc đó nhập vào sheet tên sản phẩm đầy đủ. Hoặc nếu csdl ngắn thì nhập vào vd. Data Validation.

Nếu người ta chọn từ csdl chuẩn thì không thể sai được, không thể có 10 người 11 ý được.
 
Upvote 0
Em chào anh chị trong nhóm, Sheet1 em có 1 cột Tên sản phẩm và 1 cột mã sản phẩm , và sheet2 em có sẵn tên sản phẩm ,nhưng tên sản phẩm này chỉ có 1 phần chữ giống với tên sản phẩm sheet1 kia, bây giờ em muốn dò tìm tên này để lấy mã sản phẩm, anh chị trong nhóm có cách nào dò mã giúp em với ạ, Em cám ơn anh chị ạ
Có những chuyện không như mơ, quản trị doanh nghiệp phải xử lý rừng dữ liệu từ nhiều nguồn khác nhau thường không đồng nhất, lúc thừa lúc thiếu là chuyện cơm bữa. Dữ liệu đến từ các đối tác kinh doanh không thể theo chuẩn chung, ngay cả trong nội bộ doanh nghiệp từng bộ phận thường có cách xử lý dữ liệu riêng và mối quan hệ giữa các cá nhân khá phức tạp nên dữ liệu thường khác nhau, muốn dữ liệu thống nhất phải bỏ ra chi phí và thời gian khá lớn để xây dựng hệ thống quản trị nguồn lực ERP
Tạm chữa cháy bằng cách cắt chuỗi và tìm gần đúng, nếu muốn xịn hơn tìm người dùng thuật toán trí tuệ nhân tạo để xử lý :p
Dữ liệu khá ít nên code có thể chưa xét hết các khả năng
Mã:
Sub XYZ()
  Dim aData(), aSP(), res(), arr(), S, aL, aU, sp$
  Dim srData&, srSP&, N&, D&, i&, j&, k&, r&
 
  aL = Array(0, 1, 0, 1, 0, 2, 3, 0, 2, 1, 4, 0, 3, 1, 2)
  aU = Array(0, 0, 1, 1, 2, 0, 0, 3, 1, 2, 0, 4, 1, 3, 2)
  N = UBound(aL)
  With Sheets("Sheet1")
    aData = .Range("A2", .Range("B" & Rows.Count).End(xlUp)).Value
  End With
  With Sheets("Sheet2")
    aSP = .Range("A2", .Range("A" & Rows.Count).End(xlUp)).Value
  End With
  srData = UBound(aData): srSP = UBound(aSP)
  ReDim res(1 To srSP, 1 To 2)
  For i = 1 To srData
    aData(i, 1) = Application.Trim(Replace(aData(i, 1), "!", "! "))
  Next i
  For i = 1 To srSP
    S = Split(Application.Trim(Replace(aSP(i, 1), "!", "! ")), " ")
    D = UBound(S)
    For j = 0 To N
      If D - aL(j) - aU(j) > 0 Then
        ReDim arr(aL(j) To D - aU(j))
        For k = aL(j) To D - aU(j)
          arr(k) = S(k)
        Next k
        sp = Join(arr, " ")
        For r = 1 To srData
          If InStr(1, aData(r, 1), sp, vbTextCompare) > 0 Then
            res(i, 1) = aData(r, 2)
            res(i, 2) = aData(r, 1)
            GoTo Tiep
          End If
        Next r
      End If
    Next j
Tiep:
  Next i
  Sheets("Sheet2").Range("B2").Resize(srSP, 2) = res
End Sub
 
Upvote 0
Chuyện dữ liệu lôm côm có ở tất cả các đơn vị mà tôi đã làm qua. Bộ phận này yêu cầu bộ phận kia làm cho đúng cũng không được. Cấp cao hơn không (hoặc thiếu) quan tâm, cứ cơm áo gạo tiền đã, mấy chuyện đó tụi mày tự xử lý. Thế là ai nấy tự bơi thôi.

Do đó tôi rất thông cảm với những trường hợp như của chủ thớt.
 
Upvote 0
. . . . ,nhưng tên sản phẩm này chỉ có 1 phần chữ giống với tên sản phẩm sheet1 kia, bây giờ em muốn dò tìm tên này để lấy mã sản phẩm, anh chị trong nhóm có cách nào dò mã giúp em với ạ, . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
$$$$@
 

File đính kèm

Upvote 0
Nếu có >=2 sản phẩm cùng số lượng chữ giống nhau thì chọn thế nào?
Dạ . Chắc không có đâu. Nếu có em lấy chữ chữ đầu tiên ạ
Bài đã được tự động gộp:

Có những chuyện không như mơ, quản trị doanh nghiệp phải xử lý rừng dữ liệu từ nhiều nguồn khác nhau thường không đồng nhất, lúc thừa lúc thiếu là chuyện cơm bữa. Dữ liệu đến từ các đối tác kinh doanh không thể theo chuẩn chung, ngay cả trong nội bộ doanh nghiệp từng bộ phận thường có cách xử lý dữ liệu riêng và mối quan hệ giữa các cá nhân khá phức tạp nên dữ liệu thường khác nhau, muốn dữ liệu thống nhất phải bỏ ra chi phí và thời gian khá lớn để xây dựng hệ thống quản trị nguồn lực ERP
Tạm chữa cháy bằng cách cắt chuỗi và tìm gần đúng, nếu muốn xịn hơn tìm người dùng thuật toán trí tuệ nhân tạo để xử lý :p
Dữ liệu khá ít nên code có thể chưa xét hết các khả năng
Mã:
Sub XYZ()
  Dim aData(), aSP(), res(), arr(), S, aL, aU, sp$
  Dim srData&, srSP&, N&, D&, i&, j&, k&, r&
 
  aL = Array(0, 1, 0, 1, 0, 2, 3, 0, 2, 1, 4, 0, 3, 1, 2)
  aU = Array(0, 0, 1, 1, 2, 0, 0, 3, 1, 2, 0, 4, 1, 3, 2)
  N = UBound(aL)
  With Sheets("Sheet1")
    aData = .Range("A2", .Range("B" & Rows.Count).End(xlUp)).Value
  End With
  With Sheets("Sheet2")
    aSP = .Range("A2", .Range("A" & Rows.Count).End(xlUp)).Value
  End With
  srData = UBound(aData): srSP = UBound(aSP)
  ReDim res(1 To srSP, 1 To 2)
  For i = 1 To srData
    aData(i, 1) = Application.Trim(Replace(aData(i, 1), "!", "! "))
  Next i
  For i = 1 To srSP
    S = Split(Application.Trim(Replace(aSP(i, 1), "!", "! ")), " ")
    D = UBound(S)
    For j = 0 To N
      If D - aL(j) - aU(j) > 0 Then
        ReDim arr(aL(j) To D - aU(j))
        For k = aL(j) To D - aU(j)
          arr(k) = S(k)
        Next k
        sp = Join(arr, " ")
        For r = 1 To srData
          If InStr(1, aData(r, 1), sp, vbTextCompare) > 0 Then
            res(i, 1) = aData(r, 2)
            res(i, 2) = aData(r, 1)
            GoTo Tiep
          End If
        Next r
      End If
    Next j
Tiep:
  Next i
  Sheets("Sheet2").Range("B2").Resize(srSP, 2) = res
End Sub
Dạ em cám ơn anh ạ
Bài đã được tự động gộp:

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
$$$$@
Dạ. Em cám ơn anh ạ. Để em thử xem
 
Upvote 0
Có những chuyện không như mơ, quản trị doanh nghiệp phải xử lý rừng dữ liệu từ nhiều nguồn khác nhau thường không đồng nhất, lúc thừa lúc thiếu là chuyện cơm bữa. Dữ liệu đến từ các đối tác kinh doanh không thể theo chuẩn chung, ngay cả trong nội bộ doanh nghiệp từng bộ phận thường có cách xử lý dữ liệu riêng và mối quan hệ giữa các cá nhân khá phức tạp nên dữ liệu thường khác nhau, muốn dữ liệu thống nhất phải bỏ ra chi phí và thời gian khá lớn để xây dựng hệ thống quản trị nguồn lực ERP
Tạm chữa cháy bằng cách cắt chuỗi và tìm gần đúng, nếu muốn xịn hơn tìm người dùng thuật toán trí tuệ nhân tạo để xử lý :p
Dữ liệu khá ít nên code có thể chưa xét hết các khả năng
...
Chi phí ERP có hai chỗ:
1. chi phí xây dựng
2. chi phí vận hành
Cỡ công ty thớt thì không bao giờ qua nổi hai cái này. Thứ nhất, phải có chuyên viên đủ kỹ năng lập được sơ đồ hệ thống. Thứ hai, phải đào tạo nhân viên đủ khả năng vận hành.

Như thớt nói "trùng nhau nhiều nhất" thì rõ ràng là không biết dò tên. Dò tên phải có một quy trình xác định lô gic nào đứng trên lô gic nào. Phải xác định trước tên hàng của mình phần lớn được đặt theo kiểu nào. Ví dụ "Máy Honda 300cc", và "Xe Máy Honda" thì khi dò "Máy Honda" sẽ chọn bên nào. Nếu dò theo tỷ số ký tự khớp thì rõ ràng "Xe Máy Honda" khớp 9/12 trong khi "Máy Honda 300cc" khớp 9/15.

Chuyện dữ liệu lôm côm có ở tất cả các đơn vị mà tôi đã làm qua. Bộ phận này yêu cầu bộ phận kia làm cho đúng cũng không được. Cấp cao hơn không (hoặc thiếu) quan tâm, cứ cơm áo gạo tiền đã, mấy chuyện đó tụi mày tự xử lý. Thế là ai nấy tự bơi thôi.

Do đó tôi rất thông cảm với những trường hợp như của chủ thớt.
Chuyện dữ liệu như này ai cũng có gặp qua. Vấn đề là mình có biết cách "đổ tội" hay không thôi.
Nếu mình biết cách ghi lại bằng chứng, khó chối cãi thì tự động một thời gian sau bên lỗi sẽ tự động sửa. Không cần phải cãi cọ, không cần khải trưng bằng chứng gì cả. Bên kia biết mình nắm cán thì họ sẽ tự động tránh.
Nếu họ không tự sửa là vì họ tự tin rằng mình cũng lọng cọng như họ. Cái cán mình nắm cũng không vững.
Mà kinh nghiệm của tôi ở GPE này cho thấy: nồi nào úp vung nấy. Bên than thở thực sự lọng cọng bỏ bố.
 
Lần chỉnh sửa cuối:
Upvote 0
Em chào anh chị trong nhóm, Sheet1 em có 1 cột Tên sản phẩm và 1 cột mã sản phẩm , và sheet2 em có sẵn tên sản phẩm ,nhưng tên sản phẩm này chỉ có 1 phần chữ giống với tên sản phẩm sheet1 kia, bây giờ em muốn dò tìm tên này để lấy mã sản phẩm, anh chị trong nhóm có cách nào dò mã giúp em với ạ, Em cám ơn anh chị ạ
Gợi ý thớt thế này: bấm vào ô có chữ cần dò => cho ra list khớp chữ => thấy dòng nào đúng thì chọn vào để lấy mã số.
 
Upvote 0
Chi phí ERP có hai chỗ:
1. chi phí xây dựng
2. chi phí vận hành
Cỡ công ty thớt thì không bao giờ qua nổi hai cái này. Thứ nhất, phải có chuyên viên đủ kỹ năng lập được sơ đồ hệ thống. Thứ hai, phải đào tạo nhân viên đủ khả năng vận hành.

Như thớt nói "trùng nhau nhiều nhất" thì rõ ràng là không biết dò tên. Dò tên phải có một quy trình xác định lô gic nào đứng trên lô gic nào. Phải xác định trước tên hàng của mình phần lớn được đặt theo kiểu nào. Ví dụ "Máy Honda 300cc", và "Xe Máy Honda" thì khi dò "Máy Honda" sẽ chọn bên nào. Nếu dò theo tỷ số ký tự khớp thì rõ ràng "Xe Máy Honda" khớp 9/12 trong khi "Máy Honda 300cc" khớp 9/15.


Chuyện dữ liệu như này ai cũng có gặp qua. Vấn đề là mình có biết cách "đổ tội" hay không thôi.
Nếu mình biết cách ghi lại bằng chứng, khó chối cãi thì tự động một thời gian sau bên lỗi sẽ tự động sửa. Không cần phải cãi cọ, không cần khải trưng bằng chứng gì cả. Bên kia biết mình nắm thì họ sẽ tự động tránh.
Nếu họ không tự sửa là vì họ tự tin rằng mình cũng lọng cọng như họ.
Mà kinh nghiệm của tôi ở GPE này cho thấy: nồi nào úp vung nấy. Bên than thở thực sự lọng cọng bỏ bố.
Dạ .nếu dò trùng nhiều nhất. Vd như Máy honda. 2 cái đều trùng như nhau. Thì lấy hàng xuất hiện trên ạ.
Bài đã được tự động gộp:

Chi phí ERP có hai chỗ:
1. chi phí xây dựng
2. chi phí vận hành
Cỡ công ty thớt thì không bao giờ qua nổi hai cái này. Thứ nhất, phải có chuyên viên đủ kỹ năng lập được sơ đồ hệ thống. Thứ hai, phải đào tạo nhân viên đủ khả năng vận hành.

Như thớt nói "trùng nhau nhiều nhất" thì rõ ràng là không biết dò tên. Dò tên phải có một quy trình xác định lô gic nào đứng trên lô gic nào. Phải xác định trước tên hàng của mình phần lớn được đặt theo kiểu nào. Ví dụ "Máy Honda 300cc", và "Xe Máy Honda" thì khi dò "Máy Honda" sẽ chọn bên nào. Nếu dò theo tỷ số ký tự khớp thì rõ ràng "Xe Máy Honda" khớp 9/12 trong khi "Máy Honda 300cc" khớp 9/15.


Chuyện dữ liệu như này ai cũng có gặp qua. Vấn đề là mình có biết cách "đổ tội" hay không thôi.
Nếu mình biết cách ghi lại bằng chứng, khó chối cãi thì tự động một thời gian sau bên lỗi sẽ tự động sửa. Không cần phải cãi cọ, không cần khải trưng bằng chứng gì cả. Bên kia biết mình nắm thì họ sẽ tự động tránh.
Nếu họ không tự sửa là vì họ tự tin rằng mình cũng lọng cọng như họ.
Mà kinh nghiệm của tôi ở GPE này cho thấy: nồi nào úp vung nấy. Bên than thở thực sự lọng cọng bỏ bố.
Dạ .nếu dò trùng nhiều nhất. Vd như Máy honda. 2 cái đều trùng như nhau. Thì lấy hàng xuất hiện trên ạ.
Gợi ý thớt thế này: bấm vào ô có chữ cần dò => cho ra list khớp chữ => thấy dòng nào đúng thì chọn vào để lấy mã số.
Ý hay anh ạ. Nếu tìm chữ trùng nhau đều giống nhau. Thì mình chọn cũng được anh ạ.
 
Upvote 0
Tham khảo file của mình bài trên & xin bạn góp ý thêm . . . .
Cột tên sản phẩm sheet2 chắc là nhập tay, hay là bác làm cho 1 cái list xổ xuống khi đang nhập để lựa chọn cho nó nhanh :D:D:D.
Thường thì thấy tra cứu cái gì đó theo mã, đây lại tra cứu mã theo tên, cái này hơi bị lạ.
 
Upvote 0
Chi phí ERP có hai chỗ:
1. chi phí xây dựng
2. chi phí vận hành
Cỡ công ty thớt thì không bao giờ qua nổi hai cái này. Thứ nhất, phải có chuyên viên đủ kỹ năng lập được sơ đồ hệ thống. Thứ hai, phải đào tạo nhân viên đủ khả năng vận hành.
Không có khả năng đành phải sống chung với lũ
Chuyện dữ liệu như này ai cũng có gặp qua. Vấn đề là mình có biết cách "đổ tội" hay không thôi.
Nếu mình biết cách ghi lại bằng chứng, khó chối cãi thì tự động một thời gian sau bên lỗi sẽ tự động sửa. Không cần phải cãi cọ, không cần khải trưng bằng chứng gì cả. Bên kia biết mình nắm cán thì họ sẽ tự động tránh.
Nếu họ không tự sửa là vì họ tự tin rằng mình cũng lọng cọng như họ. Cái cán mình nắm cũng không vững.
Mà kinh nghiệm của tôi ở GPE này cho thấy: nồi nào úp vung nấy. Bên than thở thực sự lọng cọng bỏ bố.
Vấn đề thường gặp là bên nào cũng cho mình đúng như phù hợp với đặc điểm công việc của đơn vị mình, hoặc do phần mềm quản lý của từng bộ phận quy định như thế và . . . nhiều lý do khác, cấp trên không đủ khả năng hoặc không dám mạnh miệng phán phải theo anh nào
 
Lần chỉnh sửa cuối:
Upvote 0
Tham khảo file của mình bài trên & xin bạn góp ý thêm . . . .
Vâng .để em tham khảo ạ
Bài đã được tự động gộp:

Có lẽ file này sẽ đáp ứng nhu cầu của bạn
Dạ vâng.Em cám ơn .Để em kiểm tra lại ạ
Bài đã được tự động gộp:

Cột tên sản phẩm sheet2 chắc là nhập tay, hay là bác làm cho 1 cái list xổ xuống khi đang nhập để lựa chọn cho nó nhanh :D:D:D.
Thường thì thấy tra cứu cái gì đó theo mã, đây lại tra cứu mã theo tên, cái này hơi bị lạ.
Dạ anh.Dữ liệu em đều nhập trước hết rùi anh ạ. Bấy giờ em chỉ muốn lấy mã sản phẩm.cái khó dữ liệu mỗi người gõ 1 kiểu anh ạ.
 
Lần chỉnh sửa cuối:
Upvote 0
Không có khả năng đành phải sống chung với lũ
...
Thì ở GPE này cũng vậy. Có được bao nhiêu lần bạn giải bài mà không phải cắn răng...

...
Vấn đề thường gặp là bên nào cũng cho mình đúng như phù hợp với đặc điểm công việc của đơn vị mình, hoặc do phần mềm quản lý của từng bộ phận quy định như thế và . . . nhiều lý do khác, cấp không đủ khả năng hoặc không dám mạnh miệng phán phải theo anh nào
Ở bài trên tôi có nói điển hình ở GPE cũng đâu khác ngoài đời.
Có được bao nhiêu bài chủ thớt chịu nghe mình chỉ dẫn đường lối khác? Trường hợp gặp nhiều nhất là lập bảng tổng hợp, rõ ràng cái bảng tổng hợp nó là Pivot Table mà cũng nhất định tìm mọi cớ để bảo vệ ý thích dùng hàm của mình. Trường hợp Advanced Filter xếp kế. Vòi VBA thay vì công thức xếp hạng 3.

Đã lên đây hỏi đáng lẽ phải biết xếp thành kiến/định kiến, bỏ thói chủ quan mà còn chưa làm được. Chỉ biết ngồi đó trách các phòng ban khác làm việc không đúng.
 
Upvote 1

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

Back
Top Bottom