=SWITCH(B2,"N","North","S","South","E","East","Unknown") lần lượt so B2 với "N", "S" và "E" rồi trả về tên đi cặp với giá trị khớp chính xác đầu tiên. Khi B2 không khớp với giá trị nào, hàm trả về đối số cuối cùng, Unknown.
| A | B | C | |
|---|---|---|---|
| 1 | Store | Code | Region |
| 2 | 101 | N | North |
| 3 | 102 | S | South |
| 4 | 103 | W | Unknown |
| 5 | 104 | E | East |
| 6 | 105 | n | North |
Nhấp vào C2 để xem công thức. Cửa hàng 103 có mã W, không có trong danh sách, nên nhận Unknown. Cửa hàng 105 có chữ n viết thường mà vẫn nhận North: khi so khớp văn bản, SWITCH không phân biệt chữ hoa chữ thường. Đổi B4 thành S và khu vực sẽ cập nhật.
Cú pháp hàm SWITCH
=SWITCH(expression, value1, result1, [value2, result2], ..., [default])
expressionđược tính một lần: một ô, hoặc một công thức nhưWEEKDAY(A2)hayMONTH(A2).- Tiếp theo là các cặp gồm một giá trị và kết quả cần trả về khi
expressionbằng giá trị đó. Có thể có tối đa 126 cặp. defaultkhông bắt buộc: một đối số thêm sau cặp cuối cùng. SWITCH biết đó là giá trị mặc định vì nó không có cặp.- Phép khớp là chính xác. Tự SWITCH không kiểm tra được "lớn hơn" (xem SWITCH(TRUE) ở dưới).
SWITCH cần Excel 2019 trở lên, hoặc Microsoft 365. Trong Excel 2016 bản mua đứt hoặc cũ hơn, công thức có SWITCH hiện #NAME?. Google Sheets cũng có SWITCH.
Giá trị mặc định, và #N/A khi không có nó
Không có giá trị mặc định, một giá trị không khớp với gì sẽ cho #N/A. Ở đây, số thứ trong tuần từ WEEKDAY (1 là Chủ Nhật, 7 là Thứ Bảy) được đổi thành nhãn; cột C không có giá trị mặc định, cột D có "Weekday" làm giá trị mặc định:
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Date | Day number | No default | With default |
| 2 | 2026-03-14 | 7 | Saturday | Saturday |
| 3 | 2026-03-15 | 1 | Sunday | Sunday |
| 4 | 2026-03-16 | 2 | #N/A | Weekday |
| 5 | 2026-03-17 | 3 | #N/A | Weekday |
| 6 | 2026-03-21 | 7 | Saturday | Saturday |
Ngày 14 và 21 tháng 3 năm 2026 là Thứ Bảy, còn ngày 15 tháng 3 là Chủ Nhật, nên cả hai cột đều gọi tên được. Thứ Hai và Thứ Ba không khớp với 1 hay 7: cột C hiện #N/A, cột D hiện Weekday. Cột D cũng cho thấy biểu thức có thể là một công thức: WEEKDAY chạy một lần và SWITCH so kết quả của nó với từng giá trị.
SWITCH(TRUE, ...) cho khoảng giá trị
SWITCH chỉ kiểm tra bằng nhau, nhưng biểu thức có thể là TRUE. Khi đó mỗi giá trị là một phép so sánh, và SWITCH trả về kết quả của phép so sánh đầu tiên bằng TRUE. Nhờ vậy hàm hoạt động giống IFS, kèm giá trị mặc định ở cuối:
| A | B | C | |
|---|---|---|---|
| 1 | Student | Score | Grade |
| 2 | Ana | 94 | A |
| 3 | Ben | 81 | B |
| 4 | Chloe | 70 | C |
| 5 | Dan | 65 | F |
| 6 | Eve | 88 | B |
Các phép so sánh được đọc theo thứ tự, nên ngưỡng cao nhất đứng đầu, cùng quy tắc như IF lồng nhau và IFS. Chữ "F" cuối cùng không có cặp, nên nó là giá trị mặc định cho mọi điểm dưới 70. IFS viết cùng quy tắc này rõ ràng không kém; khác biệt duy nhất là vị trí của TRUE: một lần ở đầu trong SWITCH, là phép kiểm tra cuối cùng trong IFS.
Đổi số thành tên
Một cách dùng phổ biến là đổi một mã số thành chữ, ví dụ thứ hạng thành huy chương:
| A | B | C | |
|---|---|---|---|
| 1 | Runner | Rank | Medal |
| 2 | Ana | 2 | Silver |
| 3 | Ben | 1 | Gold |
| 4 | Chloe | 4 | |
| 5 | Dan | 3 | Bronze |
| 6 | Eve | 7 |
Chloe và Eve về đích ngoài top ba, nên nhận giá trị mặc định là văn bản rỗng. Khi các mã là 1, 2, 3 và tiếp tục không bị ngắt quãng, CHOOSE ngắn hơn, =CHOOSE(B2,"Gold","Silver","Bronze"), nhưng không có giá trị mặc định và trả về #VALUE! với 4 trở lên.
Luyện tập: mã trạng thái
| A | B | C | |
|---|---|---|---|
| 1 | Invoice | Code | Status |
| 2 | INV-01 | P | |
| 3 | INV-02 | U | |
| 4 | INV-03 | X | |
| 5 | INV-04 | P |
Đến lượt bạn: Ở C2, dùng SWITCH đổi mã ở B2 thành chữ: P là "Paid", U là "Unpaid", còn lại là "Check". Công thức được điền xuống đến C5.
SWITCH, IFS hay IF lồng nhau
Cả ba đều trả về một trong nhiều kết quả; chúng khác nhau ở thứ được kiểm tra.
| SWITCH | IFS | IF lồng nhau | |
|---|---|---|---|
| Kiểm tra | Một biểu thức, so bằng nhau | Điều kiện bất kỳ cho mỗi cặp | Điều kiện bất kỳ cho mỗi tầng |
| Giá trị mặc định | Đối số cuối, không bắt buộc | Một cặp TRUE ở cuối | Giá trị khi sai của IF cuối cùng |
| Không khớp, không có mặc định | #N/A | #N/A | FALSE, nếu IF cuối không có value_if_false |
| Lặp lại ô | Không: B2 chỉ viết một lần | Có: B2="N", B2="S"... | Có |
| Excel 2016 trở về trước | #NAME? | #NAME? | Chạy được |
Dùng SWITCH khi một ô hoặc một công thức được so với một danh sách giá trị cố định (mã, số thứ trong tuần, tháng); đây là cách ngắn nhất và chỉ tính biểu thức một lần. Dùng IFS khi mỗi phép kiểm tra là một phép so sánh khác hoặc đọc các ô khác nhau. Dùng IF lồng nhau khi tệp phải mở được trong Excel 2016 trở về trước. Khi danh sách mã dài hoặc hay thay đổi, hãy đặt nó vào một bảng hai cột và tra cứu bằng XLOOKUP, để việc thêm mã chỉ là thêm một dòng chứ không phải sửa từng công thức.
Câu hỏi thường gặp
Hàm SWITCH trong Excel dùng để làm gì?
Hàm so một biểu thức với một danh sách giá trị và trả về kết quả đi cặp với giá trị đầu tiên khớp chính xác. =SWITCH(B2,1,"Gold",2,"Silver",3,"Bronze","") đổi thứ hạng thành tên huy chương và trả về văn bản rỗng với mọi thứ hạng khác.
Vì sao SWITCH trả về #N/A?
Biểu thức không khớp với giá trị nào và không có giá trị mặc định. Thêm một đối số nữa sau cặp cuối cùng, ví dụ "Other", và SWITCH sẽ trả về nó thay cho #N/A.
SWITCH có kiểm tra được khoảng giá trị như lớn hơn không?
Không trực tiếp, vì hàm chỉ kiểm tra bằng nhau. Hãy dùng TRUE làm biểu thức và các phép so sánh làm giá trị: =SWITCH(TRUE,B2>=90,"A",B2>=80,"B","F") trả về kết quả của phép so sánh đầu tiên cho TRUE.
Excel 2016 có hàm SWITCH không?
Chỉ bản Excel 2016 thuộc Microsoft 365 có. SWITCH có trong Excel 2019, Excel 2021, Excel 2024 và Microsoft 365; Excel 2016 bản mua đứt hoặc cũ hơn hiện #NAME?, nên ở đó hãy dùng IF lồng nhau hoặc CHOOSE.