Tham chiếu nhiều điều kiện và lấy giá trị theo thứ tự ưu tiên

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

bbkim

Thành viên mới
Tham gia
21/6/12
Bài viết
44
Được thích
1
Mình có viết hàm vba Timxeploaiuutien như file đính kèm.
Mình muốn là tham chiếu 2 điều kiện. Trong file TEST là tham chiếu mã đối tượng là họ tên để lấy Kết quả xếp loại.
Sẽ có một số người có nhiều xếp loại thì mình sẽ tham chiếu qua bảng xếp loại. Chọn xếp loại có vị trí cao nhất.

File TEST mình thử hàm thì có vẻ ổn nhưng đến khi mình đưa vào file dữ liệu chính (khoảng 2.000 dòng) thì nó bị lỗi. Nó chỉ lấy 3 xếp loại cao nhất. Mấy xếp hạng dưới nó auto đưa về xếp loại thứ 3 dù trong bảng không có xếp loại này.

Bạn nào biết cách sửa hoặc có hướng đi khác không cần dùng vba, không sort, thay đổi dữ liệu gốc thì chia sẽ cho mình với nha. Cảm ơn các bạn.


Mình xử lý vấn đề bằng cách tham chiếu 3 điều kiện kết hợp IFNA để sắp xếp. Bao nhiêu thứ tự thì bấy nhiêu IFNA. Nếu bạn nào cần mà chưa có hướng thì chơi kiểu này luôn nha. P/s: nên giới hạn vùng chọn để chạy nhanh hơn.
Mã:
=IFNA(INDEX('Thanh tich'!$D3:$D$19;MATCH(1;INDEX(('Thanh tich'!$F$3='Thanh tich'!$D3:$D$19)*(B2='Thanh tich'!$B3:$B$19)*(A2='Thanh tich'!$E3:$E$19);0);0));IFNA(INDEX('Thanh tich'!$D3:$D$19;MATCH(1;INDEX(('Thanh tich'!$F$4='Thanh tich'!$D3:$D$19)*(B2='Thanh tich'!$B3:$B$19)*(A2='Thanh tich'!$E3:$E$19);0);0));IFNA(INDEX('Thanh tich'!$D3:$D$19;MATCH(1;INDEX(('Thanh tich'!$F$5='Thanh tich'!$D3:$D$19)*(B2='Thanh tich'!$B3:$B$19)*(A2='Thanh tich'!$E3:$E$19);0);0));IFNA(INDEX('Thanh tich'!$D3:$D$19;MATCH(1;INDEX(('Thanh tich'!$F$6='Thanh tich'!$D3:$D$19)*(B2='Thanh tich'!$B3:$B$19)*(A2='Thanh tich'!$E3:$E$19);0);0));IFNA(INDEX('Thanh tich'!$D3:$D$19;MATCH(1;INDEX(('Thanh tich'!$F$7='Thanh tich'!$D3:$D$19)*(B2='Thanh tich'!$B3:$B$19)*(A2='Thanh tich'!$E3:$E$19);0);0));IFNA(INDEX('Thanh tich'!$D3:$D$19;MATCH(1;INDEX(('Thanh tich'!$F$8='Thanh tich'!$D3:$D$19)*(B2='Thanh tich'!$B3:$B$19)*(A2='Thanh tich'!$E3:$E$19);0);0));IFNA(INDEX('Thanh tich'!$D3:$D$19;MATCH(1;INDEX(('Thanh tich'!$F$9='Thanh tich'!$D3:$D$19)*(B2='Thanh tich'!$B3:$B$19)*(A2='Thanh tich'!$E3:$E$19);0);0));IFNA(INDEX('Thanh tich'!$D3:$D$19;MATCH(1;INDEX(('Thanh tich'!$F$10='Thanh tich'!$D3:$D$19)*(B2='Thanh tich'!$B3:$B$19)*(A2='Thanh tich'!$E3:$E$19);0);0));"Not found"))))))))
 

File đính kèm

  • TEST.xlsm
    142.7 KB · Đọc: 4
Lần chỉnh sửa cuối:
Mình có viết hàm vba Timxeploaiuutien như file đính kèm.
Mình muốn là tham chiếu 2 điều kiện. Trong file TEST là tham chiếu mã đối tượng là họ tên để lấy Kết quả xếp loại.
Sẽ có một số người có nhiều xếp loại thì mình sẽ tham chiếu qua bảng xếp loại. Chọn xếp loại có vị trí cao nhất.

File TEST mình thử hàm thì có vẻ ổn nhưng đến khi mình đưa vào file dữ liệu chính (khoảng 2.000 dòng) thì nó bị lỗi. Nó chỉ lấy 3 xếp loại cao nhất. Mấy xếp hạng dưới nó auto đưa về xếp loại thứ 3 dù trong bảng không có xếp loại này.

Bạn nào biết cách sửa hoặc có hướng đi khác không cần dùng vba, không sort, thay đổi dữ liệu gốc thì chia sẽ cho mình với nha. Cảm ơn các bạn.
Thử tham khảo tại đây.
 
Web KT
Back
Top Bottom