CHOOSE, SWITCH, IFS: Thay Thế Nested IF Cho Công Thức Sạch Hơn
Chia sẻ
"Hướng dẫn hàm CHOOSE, SWITCH, IFS trong Excel: viết công thức phân nhánh gọn gàng thay vì Nested IF lồng nhau phức tạp — dễ đọc, dễ bảo trì."
1. Vấn đề với Nested IF
=IF(A1="A", "Xuất sắc", IF(A1="B", "Tốt", IF(A1="C", "Khá", IF(A1="D", "Trung bình", "Yếu"))))Nested IF hoạt động nhưng CỰC KỲ KHÓ ĐỌC:
4 mức lồng → 4 dấu ngoặc đóng cuối
Thêm 1 case → phải sửa giữa chuỗi IF
Debug → đếm ngoặc mệt mỏi
Excel cung cấp 3 hàm thay thế: IFS, SWITCH, CHOOSE.
2. IFS — Nhiều điều kiện
=IFS(condition1, value1, condition2, value2, ..., TRUE, default)2.1. Ví dụ: Xếp loại điểm
=IFS(B2>=90, "A", B2>=80, "B", B2>=70, "C", B2>=60, "D", TRUE, "F")2.2. So sánh với Nested IF
Nested IF | IFS |
|---|---|
|
|
IFS ngắn hơn, dễ đọc hơn, DỄ THÊM case mới.
2.3. Default value
TRUE, "F" → TRUE luôn đúng → đây là default/else case.
QUAN TRỌNG: Luôn thêm TRUE, default cuối cùng, nếu không → #N/A khi không match.
2.4. Khi nào dùng IFS
Điều kiện KHÁC NHAU (không phải so sánh 1 giá trị)
Cần kiểm tra phạm vi: >=90, >=80, >=70...
Cần logic phức tạp:
AND(A1>10, B1<20)
3. SWITCH — So sánh 1 giá trị
=SWITCH(expression, value1, result1, value2, result2, ..., default)3.1. Ví dụ: Mã phòng ban → Tên
=SWITCH(A2, "KD", "Kinh doanh", "KT", "Kế toán", "NS", "Nhân sự", "IT", "Công nghệ", "Không xác định")3.2. So sánh trực tiếp
Nested IF: =IF(A2="KD","Kinh doanh",IF(A2="KT","Kế toán",IF(A2="NS","Nhân sự","Khác")))
SWITCH: =SWITCH(A2, "KD","Kinh doanh", "KT","Kế toán", "NS","Nhân sự", "Khác")3.3. Default value
Giá trị CUỐI CÙNG không có cặp → default:
=SWITCH(A2, 1,"Mon", 2,"Tue", 3,"Wed", "Unknown")"Unknown" = default vì không có value đi kèm.
3.4. Khi nào dùng SWITCH
So sánh 1 expression với NHIỀU GIÁ TRỊ CỤ THỂ
Mapping code → text: mã phòng → tên, mã sản phẩm → tên
Thay thế VLOOKUP đơn giản (không cần bảng tra)
4. CHOOSE — Chọn theo thứ tự
=CHOOSE(index_num, value1, value2, value3, ...)index_num = 1 → value1, = 2 → value2, = 3 → value3...
4.1. Ví dụ: Số tháng → Tên tháng
=CHOOSE(MONTH(A2), "Tháng 1", "Tháng 2", "Tháng 3", "Tháng 4", "Tháng 5", "Tháng 6", "Tháng 7", "Tháng 8", "Tháng 9", "Tháng 10", "Tháng 11", "Tháng 12")4.2. Ví dụ: Ngày trong tuần
=CHOOSE(WEEKDAY(A2), "CN", "T2", "T3", "T4", "T5", "T6", "T7")4.3. CHOOSE trong VLOOKUP
Dynamic bảng tra:
=VLOOKUP(A2, CHOOSE({1,2}, B2:B100, C2:C100), 2, FALSE)CHOOSE({1,2}, ...) tạo mảng 2 cột ẢO → VLOOKUP từ trái sang phải tùy ý.
4.4. Khi nào dùng CHOOSE
Index là SỐ THỨ TỰ: 1, 2, 3, 4...
Mapping số → text: tháng, ngày trong tuần, quý
Tạo mảng ảo cho VLOOKUP/SUMPRODUCT
5. So sánh tổng thể
Hàm | Điều kiện | Best for |
|---|---|---|
IF | 1-2 điều kiện | Đơn giản, có/không |
IFS | Nhiều điều kiện KHÁC NHAU | Phạm vi, logic phức tạp |
SWITCH | So sánh 1 giá trị | Mapping code → text |
CHOOSE | Index là số thứ tự | Tháng, thứ, danh sách cố định |
Nested IF | Nhiều mức | TRÁNH NẾU CÓ THỂ |
6. Kết hợp với hàm khác
6.1. IFS + AND/OR
=IFS(
AND(A2="VIP", B2>1000000), "Gold",
AND(A2="VIP", B2>500000), "Silver",
A2="VIP", "Bronze",
TRUE, "Standard"
)6.2. SWITCH + TEXT
=SWITCH(TEXT(A2,"ddd"), "Mon","Thứ 2", "Tue","Thứ 3", "Wed","Thứ 4", "Thu","Thứ 5", "Fri","Thứ 6", "Sat","Thứ 7", "Sun","Chủ nhật")6.3. CHOOSE + SUMPRODUCT
=SUMPRODUCT(CHOOSE(MONTH(A2:A100), 0,0,0,1,1,1,0,0,0,0,0,0) * B2:B100)Tổng doanh số chỉ Q2 (tháng 4,5,6) → CHOOSE trả 1 cho tháng 4,5,6, 0 cho còn lại.
7. LET — Đặt tên biến trong công thức
=LET(
score, B2,
IFS(score>=90, "A", score>=80, "B", score>=70, "C", score>=60, "D", TRUE, "F")
)LET kết hợp IFS/SWITCH → công thức phức tạp nhưng DỄ ĐỌC.
8. Mẹo phân nhánh
< 3 điều kiện: dùng IF:
=IF(A1>0, "Có", "Không")So sánh giá trị cụ thể: dùng SWITCH: mapping code
Phạm vi/logic: dùng IFS: score ranges
Index số: dùng CHOOSE: tháng, thứ
Luôn có default:
TRUE, "default"trong IFS, giá trị cuối trong SWITCH
9. Tổng kết
IFS, SWITCH, CHOOSE là BỘ BA thay thế Nested IF. IFS cho điều kiện phức tạp, SWITCH cho mapping exact value, CHOOSE cho index số. Kết quả: công thức ngắn hơn, dễ đọc hơn, dễ bảo trì hơn. Bỏ Nested IF lồng 7 tầng — chuyển sang IFS/SWITCH chỉ 1 dòng.
📥 Tải File Demo
📥 Tải file demo: choose-switch-ifs-demo.xlsx
📎 File đính kèm bài viết — chứa đầy đủ dữ liệu mẫu
Mục lục
- 1. Vấn đề với Nested IF
- 2. IFS — Nhiều điều kiện
- 2.1. Ví dụ: Xếp loại điểm
- 2.2. So sánh với Nested IF
- 2.3. Default value
- 2.4. Khi nào dùng IFS
- 3. SWITCH — So sánh 1 giá trị
- 3.1. Ví dụ: Mã phòng ban → Tên
- 3.2. So sánh trực tiếp
- 3.3. Default value
- 3.4. Khi nào dùng SWITCH
- 4. CHOOSE — Chọn theo thứ tự
- 4.1. Ví dụ: Số tháng → Tên tháng
- 4.2. Ví dụ: Ngày trong tuần
- 4.3. CHOOSE trong VLOOKUP
- 4.4. Khi nào dùng CHOOSE
- 5. So sánh tổng thể
- 6. Kết hợp với hàm khác
- 6.1. IFS + AND/OR
- 6.2. SWITCH + TEXT
- 6.3. CHOOSE + SUMPRODUCT
- 7. LET — Đặt tên biến trong công thức
- 8. Mẹo phân nhánh
- 9. Tổng kết
Muốn làm chủ Excel?
Tham gia khóa học E-Learning của Trà Đá Data để được hướng dẫn chi tiết từ A-Z với Case Study thực tế.
Tìm hiểu ngayBình luận
Đăng nhập để tham gia bình luận
Đăng nhậpNhận bài viết mới nhất
Đăng ký để nhận thông báo khi có bài viết mới. Không spam, chỉ kiến thức chất lượng.
Bài viết liên quan
Khám phá thêm các bài viết cùng chủ đề
INDIRECT Và OFFSET: Tạo Tham Chiếu Động Trong Excel
INDIRECT biến text thành tham chiếu, OFFSET tạo range dịch chuyển. Tạo dependent dropdowns, dynamic charts, cross-sheet lookups một cách linh hoạt.
IF Nâng Cao: IFS, SWITCH, LAMBDA, LET — Công Thức Điều Kiện Thế Hệ Mới
Không còn nested IF 64 cấp! IFS cho nhiều điều kiện, SWITCH cho match giá trị, LET cho biến trung gian, LAMBDA cho hàm tự tạo. So sánh chi tiết và ví dụ.
Dynamic Array Excel: UNIQUE, SORT, FILTER, SEQUENCE — Công Thức Tràn
Hướng dẫn Dynamic Array Excel 365: UNIQUE lọc không trùng, SORT sắp xếp, FILTER lọc điều kiện, SEQUENCE tạo chuỗi số. Kết hợp tạo solutions mạnh mẽ.
