Dùng VBA thay thế hàm if nhiều điều kiện

Liên hệ QC

Hoailam126

Thành viên mới
Tham gia
18/10/17
Bài viết
34
Được thích
1
Giới tính
Nam
Kính nhờ các anh, chị hỗ trợ giúp phần đánh giá xếp loại cuối năm (file đính kèm) do sử dụng quá nhiều hàm điều kiện (hàm if) để phân loại.
- Từ cột F-G (hàng 27 trở đi) thì dùng hàm if còn ngắn
- Cột H: nếu dùng hàm if (căn cứ theo tiêu chuẩn bảng phía trên) thì quá dài.
Vì vậy, kính mong anh/chị hỗ trợ để mình có thể sử dụng ngắn gọn lại công thức hàm (bằng code VBA thì quá tốt).
Chân thành cảm ơn mọi người
 

File đính kèm

Kính nhờ các anh, chị hỗ trợ giúp phần đánh giá xếp loại cuối năm (file đính kèm) do sử dụng quá nhiều hàm điều kiện (hàm if) để phân loại.
- Từ cột F-G (hàng 27 trở đi) thì dùng hàm if còn ngắn
- Cột H: nếu dùng hàm if (căn cứ theo tiêu chuẩn bảng phía trên) thì quá dài.
Vì vậy, kính mong anh/chị hỗ trợ để mình có thể sử dụng ngắn gọn lại công thức hàm (bằng code VBA thì quá tốt).
Chân thành cảm ơn mọi người
Bài toán bạn đưa ra có 2 điểm chưa rõ:
- Điều kiện đánh giá đối với MH1: nếu tỷ lệ =90% thì tính là "HTXS" hay "HT"
- Bảng cơ sở đánh giá: ô C8 là "HTT" --> tôi đoán đúng ra phải là "KHT"
Để giải quyết bài toán này, tôi làm các bước sau:
- Tạo 1 bảng tra tỷ lệ hoàn thành tại vùng J3:M7 của Sheets("Sheet1")
- Công thức cho ô F26
PHP:
F26=IF((C$25="Gas")*ISBLANK(C26),"HT",VLOOKUP(C26;$J$3:$M$7,RIGHT(F$25)+1,1))
Enter, Fill sang phải, Fill xuống
- Tạo 1 bảng giá trị quy đổi sang số tương ứng với từng mức hoàn thành của MH1, MH2, MH3 tại vùng H2:L22 của Sheets("Danh gia chung")
- Dùng hàm tự tạo để giải quyết đánh giá xếp loại chung

Bạn xem file đính kèm.

P/s: khi viết hàm tự tạo, tôi chưa lường hết được tất cả các trường hợp nên có thể còn thiếu sót.
Xin nhờ các bác @batman1, @HieuCD, @Phan Thế Hiệp, @befaint góp ý thêm
 

File đính kèm

Upvote 0
Kính nhờ các anh, chị hỗ trợ giúp phần đánh giá xếp loại cuối năm (file đính kèm) do sử dụng quá nhiều hàm điều kiện (hàm if) để phân loại.
- Từ cột F-G (hàng 27 trở đi) thì dùng hàm if còn ngắn
- Cột H: nếu dùng hàm if (căn cứ theo tiêu chuẩn bảng phía trên) thì quá dài.
Vì vậy, kính mong anh/chị hỗ trợ để mình có thể sử dụng ngắn gọn lại công thức hàm (bằng code VBA thì quá tốt).
Chân thành cảm ơn mọi người

Hàm này thì có gì mà quá dài và khó đâu bác, code VBA lại còn dài hơn hàm bác đang dùng ấy, bác không thích dùng "if" thì có hàm bác batman1 cho rồi đó
 
Upvote 0
Bài toán bạn đưa ra có 2 điểm chưa rõ:
- Điều kiện đánh giá đối với MH1: nếu tỷ lệ =90% thì tính là "HTXS" hay "HT"
- Bảng cơ sở đánh giá: ô C8 là "HTT" --> tôi đoán đúng ra phải là "KHT"
Để giải quyết bài toán này, tôi làm các bước sau:
- Tạo 1 bảng tra tỷ lệ hoàn thành tại vùng J3:M7 của Sheets("Sheet1")
- Công thức cho ô F26
PHP:
F26=IF((C$25="Gas")*ISBLANK(C26),"HT",VLOOKUP(C26;$J$3:$M$7,RIGHT(F$25)+1,1))
Enter, Fill sang phải, Fill xuống
- Tạo 1 bảng giá trị quy đổi sang số tương ứng với từng mức hoàn thành của MH1, MH2, MH3 tại vùng H2:L22 của Sheets("Danh gia chung")
- Dùng hàm tự tạo để giải quyết đánh giá xếp loại chung

Bạn xem file đính kèm.

P/s: khi viết hàm tự tạo, tôi chưa lường hết được tất cả các trường hợp nên có thể còn thiếu sót.
Xin nhờ các bác @batman1, @HieuCD, @Phan Thế Hiệp, @befaint góp ý thêm
Cảm ơn bác nhiều lắm
Bài đã được tự động gộp:

Công thức cho H26
Mã:
=IF(E26="","HT",INDEX({"KHT","HT","HTXS"},MATCH(E26,{0,0.75,0.90001})))

F26, G26 tương tự
Cảm ơn bác nhiều.
 
Upvote 0
Web KT

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

Back
Top Bottom