Tìm kiếm các dòng hàng chứa nhãn hiệu cần tìm

Liên hệ QC

vuquyhung

Thành viên mới
Tham gia
11/10/07
Bài viết
3
Được thích
4
Chào các bạn,
Mình có 1 list hàng từ vài trăm đến hàng chục nghìn dòng trong cột B, 1 list nhãn hiệu trong cột WG có từ vài trăm đến 1000 nhãn hiệu.
Muốn đặt công thức sao cho file nhẹ nhất, tính toán nhanh nhất để có thể tìm kiếm và lọc các dòng hàng chứa nhãn hiệu trùng với nhãn hiệu tham chiếu từ cột WG, sau đó tự động trích xuất kết quả tìm kiếm sang 1 sheet khac.
Mình đã đặt được công thức nhưng hơi nặng, xử lý chậm, máy yếu dễ bị treo (File tên hàng 10.000 dòng, 600 nhãn hiệu thì dung lượng lên đến trên 60 Mb!).
Rất mong các bạn hướng dẫn giúp.
Xin trân trọng cảm ơn!
 

File đính kèm

  • Tim kiem nhan hieu.xlsx
    969.4 KB · Đọc: 15
  • VD.jpg
    VD.jpg
    287.6 KB · Đọc: 17
Chào các bạn,
Mình có 1 list hàng từ vài trăm đến hàng chục nghìn dòng trong cột B, 1 list nhãn hiệu trong cột WG có từ vài trăm đến 1000 nhãn hiệu.
Muốn đặt công thức sao cho file nhẹ nhất, tính toán nhanh nhất để có thể tìm kiếm và lọc các dòng hàng chứa nhãn hiệu trùng với nhãn hiệu tham chiếu từ cột WG, sau đó tự động trích xuất kết quả tìm kiếm sang 1 sheet khac.
Mình đã đặt được công thức nhưng hơi nặng, xử lý chậm, máy yếu dễ bị treo (File tên hàng 10.000 dòng, 600 nhãn hiệu thì dung lượng lên đến trên 60 Mb!).
Rất mong các bạn hướng dẫn giúp.
Xin trân trọng cảm ơn!
Thử:
1/ Chỉ nên chọn đúng số dòng của cột có chứa tên nhản hiệu.
2/ Lưu file với đuôi .xlsb
Mã:
C5=IFERROR(UPPER(LOOKUP(2,1/SEARCH($D$2:$D$201,B5),$D$2:$D$201)),"")
Enter fill xuống.

Thân
 

File đính kèm

  • Tim kiem nhan hieu.xlsb
    23.2 KB · Đọc: 14
Chào các bạn,
Mình có 1 list hàng từ vài trăm đến hàng chục nghìn dòng trong cột B, 1 list nhãn hiệu trong cột WG có từ vài trăm đến 1000 nhãn hiệu.
Muốn đặt công thức sao cho file nhẹ nhất, tính toán nhanh nhất để có thể tìm kiếm và lọc các dòng hàng chứa nhãn hiệu trùng với nhãn hiệu tham chiếu từ cột WG, sau đó tự động trích xuất kết quả tìm kiếm sang 1 sheet khac.
Mình đã đặt được công thức nhưng hơi nặng, xử lý chậm, máy yếu dễ bị treo (File tên hàng 10.000 dòng, 600 nhãn hiệu thì dung lượng lên đến trên 60 Mb!).
Rất mong các bạn hướng dẫn giúp.
Xin trân trọng cảm ơn!
Thử File này:
1/ Tại Sheet1 theo dõi cái gì thì thay tên vào, nếu copy dữ liệu chỗ khác thì Paste vào từ dòng 5 trở xuống.
2/ Sang Sheet2 nhấn nút xem kết quả.
Lưu ý:
Nếu có nhãn hiệu mới thì thêm tiếp theo vào cột G và H như tôi đã làm.

A_TachNhan.GIF
 

File đính kèm

  • Tach Nhan Hieu.xlsm
    88.4 KB · Đọc: 7
Lần chỉnh sửa cuối:
File Macro không chạy Be ơi.
 
Thử:
1/ Chỉ nên chọn đúng số dòng của cột có chứa tên nhản hiệu.
2/ Lưu file với đuôi .xlsb
Mã:
C5=IFERROR(UPPER(LOOKUP(2,1/SEARCH($D$2:$D$201,B5),$D$2:$D$201)),"")
Enter fill xuống.

Thân
Quá đơn giản em à 100000 ô vẫn nhẹ, có cần C++ hay Java hay PHP chơi nối luôn
Mã:
Sub xxx()
Dim i As Long
i = Application.Max(Range("c100000").End(xlUp).Row, 6) ' xong cuoi Va Co MAX

Range("C5").FormulaArray = "=UPPER(IF(INDEX(RC[1]:RC[500],MATCH(MAX(LEN(RC[1]:RC[500])),LEN(RC[1]:RC[500]),0))=0,"""",INDEX(RC[1]:RC[500],MATCH(MAX(LEN(RC[1]:RC[500])),LEN(RC[1]:RC[500]),0))))"

    Range("C5:c" & i).FillDown
   Range("C5:c" & i).Value = Range("C5:c" & i).Value
End Sub
 
Cám ơn bạn Phan Thế Hiệp, công thức của bạn rất hay, mình đã thử với 10.000 dòng và 1.000 nhãn hiệu, kết quả chính xác, file nhẹ. Phải nói là tuyệt vời!
Bài đã được tự động gộp:

Thử File này:
1/ Tại Sheet1 theo dõi cái gì thì thay tên vào, nếu copy dữ liệu chỗ khác thì Paste vào từ dòng 5 trở xuống.
2/ Sang Sheet2 nhấn nút xem kết quả.
Lưu ý:
Nếu có nhãn hiệu mới thì thêm tiếp theo vào cột G và H như tôi đã làm.

View attachment 234805
Cám ơn bạn rất nhiều!
 
Cám ơn bạn Phan Thế Hiệp, công thức của bạn rất hay, mình đã thử với 10.000 dòng và 1.000 nhãn hiệu, kết quả chính xác, file nhẹ. Phải nói là tuyệt vời!
Bài đã được tự động gộp:


Cám ơn bạn rất nhiều!
bạn thư cái này đi. Nhanh lắm do file lưu chuần XlSB và code siêu tốc độ nữa[/QUOTE]
Bài đã được tự động gộp:

Thử File này:
1/ Tại Sheet1 theo dõi cái gì thì thay tên vào, nếu copy dữ liệu chỗ khác thì Paste vào từ dòng 5 trở xuống.
2/ Sang Sheet2 nhấn nút xem kết quả.
Lưu ý:
Nếu có nhãn hiệu mới thì thêm tiếp theo vào cột G và H như tôi đã làm.

View attachment 234805

cái này sao em thử vẫn chậm ha thầy. Thầy thử File của em chắc nhanh hơn gấp 3 lần file thầy do lưu chuẩn XLSB
Bài đã được tự động gộp:

Thử:
1/ Chỉ nên chọn đúng số dòng của cột có chứa tên nhản hiệu.
2/ Lưu file với đuôi .xlsb
Mã:
C5=IFERROR(UPPER(LOOKUP(2,1/SEARCH($D$2:$D$201,B5),$D$2:$D$201)),"")
Enter fill xuống.

Thân
vẫn chậm hay xem chú em trình diễn đây Nhanh gấp 10 lần
 

File đính kèm

  • Sieu toc do.xlsb
    845.8 KB · Đọc: 11
  • Sieu toc do.xlsb
    845.8 KB · Đọc: 6
Chào bạn Minhtuan55

Mình đã chạy thử file của bạn đúng là Siêu tốc nhưng bạn giúp sửa thêm 1 chút:
1. Khi mình bổ sung thêm các nhãn hiệu vào cuối cột nhãn hiệu rồi bấm lấy nhãn hiệu thì không cho ra kết quả.
2. Khi mình xóa bớt các cột thừa từ D đến WF thì công thức bị lỗi.
3. Bạn có thể giúp mình thiết lập lại nhãn hiệu tham chiếu ở riêng 1 sheet có tên là NHAN HIEU và có thể bổ sung các nhãn hiệu cần nhận diện, mình cần đến 1.000, nhiều hơn thì càng tốt. Chỉ nhãn hiệu nào trong sheet NHAN HIEU còn hiệu lực mới lọc.
4. Các bạn xem có thể giải được bài toán nếu có nhiều nhãn hiệu cùng nằm trên 1 dòng, ngăn cách nhau bằng dấu ";", VD: "AE; AEO; ARIE; AIRism; AMP; ABSOLUT" thì chỉ cần tên hàng có chứa 1 trong các nhãn hiệu nêu trên thì chương trình vẫn nhận diện được. VD: có chưa "AMP"

Xin trân trọng cảm ơn!
 

File đính kèm

  • Sieu toc do 3.xlsb
    871.9 KB · Đọc: 2
Lần chỉnh sửa cuối:
Web KT
Back
Top Bottom