Nhờ các anh chị hỗ trợ giúp hàm VBA thay thế cho hàm so sánh lấy kết quả

Liên hệ QC

phuoc0z

Thành viên mới
Tham gia
29/7/21
Bài viết
17
Được thích
0
Em có 1 file xử lí số liệu, hiện tại ở cột E sheet Data CT và cột H sheet Data kho đang dùng hàm để lấy được Mã than kho từ các so sánh cột Nhiệt trị kho nằm trong khoảng nào.
Hàm chạy là: =IF(AND(3700>=G31;G31>=3500);"100010001";IF(AND(4100>=G31;G31>=3701);"100010002";IF(AND(4300>=G31;G31>=4101);"100010003";IF(AND(4600>=G31;G31>=4301);"100010004";IF(AND(4800>=G31;G31>=4601);"100010014";IF(AND(5000>=G31;G31>=4801);"100010015";IF(AND(5200>=G31;G31>=5001);"100010006";IF(AND(5400>=G31;G31>=5201);"100010016";IF(AND(5500>=G31;G31>=5401);"100010017";IF(AND(5700>=G31;G31>=5501);"100010008";IF(AND(5800>=G31;G31>=5701);"100010009";"")))))))))))

Với cột G, (G31 ở đây) là giá trị của Nhiệt trị kho.

Nhưng do file xử lí rất nhiều dòng, có file lên tới 10000 dòng nên hàm này để chạy thực sự rất nặng. Nhờ anh chị hiểu biết giúp đỡ cho em có thể code trực tiếp để tự động tìm ra Mã than kho. Em cám ơn anh chị.
 

File đính kèm

  • BP-File XU LY SO LIEU - TM.xlsm
    405 KB · Đọc: 2
Em có 1 file xử lí số liệu, hiện tại ở cột E sheet Data CT và cột H sheet Data kho đang dùng hàm để lấy được Mã than kho từ các so sánh cột Nhiệt trị kho nằm trong khoảng nào.
Hàm chạy là: =IF(AND(3700>=G31;G31>=3500);"100010001";IF(AND(4100>=G31;G31>=3701);"100010002";IF(AND(4300>=G31;G31>=4101);"100010003";IF(AND(4600>=G31;G31>=4301);"100010004";IF(AND(4800>=G31;G31>=4601);"100010014";IF(AND(5000>=G31;G31>=4801);"100010015";IF(AND(5200>=G31;G31>=5001);"100010006";IF(AND(5400>=G31;G31>=5201);"100010016";IF(AND(5500>=G31;G31>=5401);"100010017";IF(AND(5700>=G31;G31>=5501);"100010008";IF(AND(5800>=G31;G31>=5701);"100010009";"")))))))))))

Với cột G, (G31 ở đây) là giá trị của Nhiệt trị kho.

Nhưng do file xử lí rất nhiều dòng, có file lên tới 10000 dòng nên hàm này để chạy thực sự rất nặng. Nhờ anh chị hiểu biết giúp đỡ cho em có thể code trực tiếp để tự động tìm ra Mã than kho. Em cám ơn anh chị.
Cái này bạn làm bảng để so sánh rồi code bạn à.
 
Upvote 0
Muốn dùng công thức, thử:

F6 =VLOOKUP(D6,'Bảng so sánh lấy Mã than'!$A$3:$C$13,3,1)
Em không dùng Vlookup được do là có những nhiệt trị nó không có tròn, ví dụ như 4124 thì nó vẫn nằm trong khoảng của 100010003 ấy. Vì cái này nó sẽ lấy nhiệt trị rồi xem nó nằm trong khoảng nào mới lấy mã đó
 
Upvote 0
Em không dùng Vlookup được do là có những nhiệt trị nó không có tròn, ví dụ như 4124 thì nó vẫn nằm trong khoảng của 100010003 ấy. Vì cái này nó sẽ lấy nhiệt trị rồi xem nó nằm trong khoảng nào mới lấy mã đó
Bạn đã thử giá trị 4124 chưa? Nó có kết quả là 100010003 hay giá trị khác?

.
 
Upvote 0
Nhưng do file xử lí rất nhiều dòng, có file lên tới 10000 dòng nên hàm này để chạy thực sự rất nặng.
Các sheets dùng VlookUp() cả chục ngàn dòng thì "oải".
Sheets("Bang_Ma") nhập lại các số liệu From - To cho liên tục nhé.
 

File đính kèm

  • TimMaKho.rar
    181.6 KB · Đọc: 9
Lần chỉnh sửa cuối:
Upvote 0
Các sheets dùng VlookUp() cả chục ngàn dòng thì "oải".
Sheets("Bang_Ma") nhập lại các số liệu Form - To cho liên tục nhé.
Em cám ơn anh, code của anh dùng rất hiệu quả nhưng mà có cách nào để nó tự nhạy không anh, chứ bấm gõ chuông em thấy hơi khó chỉnh vô làm để gửi đi
 
Upvote 0
Web KT
Back
Top Bottom