Đánh giá lequocthai.com:
Những công thức Excel rối rắm không chỉ khó nhìn mà còn rất khó bảo trì. Các tham chiếu ô lặp đi lặp lại và hàng loạt dấu ngoặc đơn khiến công việc của bạn trở nên khó kiểm tra, chỉnh sửa và chia sẻ. Đó là lý do bạn nên sử dụng hàm SWITCH. Nó biến một mớ hỗn độn thành một công thức gọn gàng, nhanh hơn và dễ hiểu hơn.
Điểm nhấn
- Hàm IF lồng nhau: Cơn ác mộng về cấu trúc
- Hàm IFS: Cơn ác mộng về sự trùng lặp
- Giải pháp: Hàm SWITCH
- Mẹo SWITCH(TRUE): Dành cho người dùng chuyên sâu
- Chọn đúng hàm
Hàm IF lồng nhau: Cơn ác mộng về cấu trúc
Các công thức IF lồng nhau trong Excel giống như những con búp bê Nga vậy. Bạn bắt đầu với một câu lệnh IF đơn giản, rồi thêm điều kiện thứ hai, thứ ba… Và đột nhiên, bạn đã lồng sâu vào nhiều tầng – hiện tượng đó gọi là “lồng nhau” (nesting).
Giả sử bạn đang dùng bảng Excel này để theo dõi tiến độ dự án.

Công thức bạn nhập để xác định trạng thái dựa trên số giai đoạn đã hoàn thành sẽ như sau:
=IF([@Completed]=0,"Pending",IF([@Completed]=1,"Active",IF([@Completed]=2,"Active",IF([@Completed]=3,"Closed","Error"))))

Công thức này có hai vấn đề chính:
- Rối với dấu ngoặc: Mỗi hàm IF mở ra đều cần một dấu ngoặc đóng. Trong các bảng tính phức tạp, bạn sẽ thấy mình phải đối mặt với một chuỗi
))))và tự hỏi liệu mình có đếm thiếu không. - Khó theo dõi logic: Để hiểu điều gì xảy ra khi cột “Completed” có giá trị 3, bạn phải “bỏ qua” logic của hai câu lệnh IF trước đó.
Khi dùng IF lồng nhau, bạn đang xây một “tòa tháp logic” mong manh. Chỉ một dấu phẩy sai vị trí, toàn bộ công thức sẽ sụp đổ.
Hàm IFS: Cơn ác mộng về sự trùng lặp
Khi Microsoft giới thiệu hàm IFS, mục tiêu là giải quyết vấn đề dấu ngoặc. Nó đã thành công trong việc đơn giản hóa cấu trúc, cho phép bạn liệt kê các điều kiện tuần tự mà không cần lồng ghép.
Trong cùng bảng tính đó, công thức IFS sẽ là:
=IFS([@Completed]=0,"Pending",[@Completed]=1,"Active",[@Completed]=2,"Active",[@Completed]=3,"Closed")

Tuy IFS là một cải tiến so với IF lồng nhau, nó lại tạo ra vấn đề mới:
- Trùng lặp dài dòng: Bạn phải nhập (hoặc nhấp chọn) tên cột tham chiếu nhiều lần, một lần cho mỗi điều kiện. Điều này tạo ra các công thức rườm rà, dài gấp đôi mức cần thiết và khó bảo trì.
- Thiếu giá trị mặc định: Không giống IF, IFS không có đối số “nếu tất cả sai” ở cuối. Nếu dữ liệu không khớp tiêu chí nào, công thức trả về lỗi
#N/A. Bạn có thể thêm một điều kiệnTRUEở cuối để khắc phục, nhưng điều đó chỉ làm công thức thêm rối.
Tóm lại, IFS giải quyết được vấn đề dấu ngoặc, nhưng không khắc phục được sự rườm rà.
Giải pháp: Hàm SWITCH
Hàm SWITCH cho phép bạn định nghĩa các quy tắc trong một danh sách rõ ràng, biến công thức từ một phép tính phức tạp thành một phép ánh xạ đơn giản.
Cú pháp của SWITCH
Cú pháp hàm SWITCH trong Excel rất trực quan:
=SWITCH(giá_trị_cần_so_sánh, giá_trị_1, kết_quả_1, [giá_trị_2, kết_quả_2], ..., [giá_trị_mặc_định])
trong đó:
- giá_trị_cần_so_sánh là giá trị hoặc ô sẽ được so sánh.
- giá_trị_1 là giá trị đầu tiên để so sánh với giá_trị_cần_so_sánh.
- kết_quả_1 là giá trị trả về nếu giá_trị_1 khớp.
- giá_trị_2, kết_quả_2 là cặp giá trị-kết quả thứ hai (tối đa 126 cặp).
- giá_trị_mặc_định là giá trị “mặc định” sẽ trả về nếu không có kết quả nào khớp.
Các đối số kết_quả và giá_trị_mặc_định là văn bản thì cần đặt trong dấu ngoặc kép.
SWITCH trong thực tế
Đây là công thức SWITCH bạn dùng cho cột Status:
=SWITCH([@Completed],0,"Pending",1,"Active",2,"Active",3,"Closed","Unknown")

Tại sao đây là lựa chọn tốt hơn?
- Chỉ tham chiếu MỘT lần: Bạn chỉ cần tham chiếu đến cột “Completed” một lần duy nhất. Điều này giúp công thức gọn gàng hơn rất nhiều, ít lỗi và dễ sửa hơn.
- Dễ đọc: Không có tham chiếu lặp lại, bạn có thể đọc công thức như một câu lệnh tự nhiên: “Nhìn vào cột Completed; nếu là 0, trả về Pending; nếu là 1, trả về Active…” và cứ thế.
- Có sẵn giá trị dự phòng: Nếu ai đó nhập một số không hợp lệ vào cột Completed, SWITCH sẽ trả về giá trị “Unknown” nhờ đối số cuối cùng.
Với SWITCH, bạn không còn phải vật lộn với cú pháp mà có thể viết những công thức dễ hiểu và hợp lý.
Mẹo SWITCH(TRUE): Dành cho người dùng chuyên sâu
Một hạn chế của SWITCH là nó chỉ so sánh khớp chính xác. Nếu bạn muốn dùng các toán tử như lớn hơn/nhỏ hơn, nhiều người nghĩ phải quay lại với IF hoặc IFS.
Nhưng bạn hoàn toàn có thể dùng SWITCH cho các khoảng giá trị bằng một mẹo thông minh: bắt đầu công thức với TRUE:
=SWITCH(TRUE,[@Completed]=0,"Pending",[@Completed]<=2,"Active",[@Completed]=3,"Closed","Error")

Bằng cách đặt đối số đầu tiên là TRUE, bạn đang hướng dẫn Excel tìm kiếm và trả về kết quả của điều kiện đầu tiên được đánh giá là ĐÚNG. Điều này cho phép bạn gộp cả giá trị 1 và 2 vào một điều kiện duyền (<=2) để trả về "Active".
Mẹo này mang lại sự linh hoạt của IF trong khi vẫn giữ được cấu trúc danh sách tuần tự rõ ràng của SWITCH.
Một điểm cần lưu ý
Cần làm rõ rằng: mẹo TRUE này có phần làm "lệch" quy tắc "chỉ tham chiếu một lần". Vì bạn đang dùng toán tử so sánh, bạn buộc phải lặp lại tham chiếu cho mỗi điều kiện, giống như trong IFS.
Tuy nhiên, việc làm ngoại lệ này là hoàn toàn chấp nhận được, vì bạn đang đánh đổi một chút lặp lại để đổi lấy sự tổ chức tối đa. Ngay cả khi tham chiếu bị lặp, cấu trúc SWITCH vẫn giữ logic của bạn trong một danh sách tuần tự rõ ràng, giúp bạn không bị lạc trong các tầng lồng nhau hay các dấu ngoặc.
Hơn nữa, bạn vẫn được hưởng lợi từ đối số giá trị mặc định ở cuối – một tính năng mà IFS không có.
Chọn đúng hàm
Dù SWITCH rất tuyệt để tổ chức logic, nó không phải là giải pháp cho mọi tình huống. Đôi khi, công thức IF lồng nhau hoặc IFS phức tạp lại là lựa chọn hợp lý hơn:
| Tình huống | Công thức nên dùng | Giải thích |
|---|---|---|
| So sánh một ô với các giá trị cụ thể. | SWITCH | Lựa chọn gọn gàng, ngắn gọn và dễ đọc nhất. |
| So sánh một ô với các khoảng giá trị đơn giản. | SWITCH(TRUE) | Duy trì cấu trúc danh sách rõ ràng trong khi cho phép so sánh. |
| Đánh giá nhiều cột/điều kiện độc lập trong một công thức. | IFS | SWITCH chỉ đánh giá một giá trị; IFS có thể kiểm tra nhiều điều kiện khác nhau. |
| Kết quả là một công thức hoặc phép tính phức tạp khác. | IF lồng nhau | Nếu kết quả mỗi nhánh là một công thức khác nhau, IF có thể dễ gỡ lỗi hơn. |
| Làm việc trên Excel 2016 hoặc cũ hơn. | IF lồng nhau | Các phiên bản Excel cũ không hỗ trợ SWITCH hoặc IFS. |
Nếu bạn thấy mình lặp lại cùng một phép tính phức tạp nhiều lần trong một công thức, hãy cân nhắc dùng hàm LET. Hàm này cho phép bạn đặt tên cho kết quả tính toán trung gian, giúp công thức trở nên rõ ràng, nhanh hơn và dễ kiểm tra hơn.
Tags:
Excel formulas, SWITCH function, Nested IF







