=IFS(B2>=90,"A",B2>=80,"B",B2>=70,"C",TRUE,"F") kiểm tra các điều kiện từ đầu đến cuối và trả về giá trị đi cùng điều kiện TRUE đầu tiên. Hàm này làm việc của IF lồng nhau mà không phải đặt IF này vào trong IF khác. IFS cần Excel 2019 trở lên, hoặc Microsoft 365.
| 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 |
| 7 | Finn | 90 | A |
Bấm vào C2: bốn cặp điều kiện và kết quả, chỉ một dấu đóng ngoặc. Đổi điểm của Chloe ở B4 thành 69 và xếp loại của cô ấy tụt xuống F.
Cú pháp hàm IFS
=IFS(logical_test1, value_if_true1, [logical_test2, value_if_true2], ...)
- Các đối số đi theo cặp: một điều kiện cho ra TRUE hoặc FALSE, rồi đến giá trị trả về khi điều kiện đó là TRUE.
- Excel kiểm tra các điều kiện theo thứ tự và trả về giá trị của điều kiện TRUE đầu tiên. Các điều kiện sau không được kiểm tra nữa, nên với điều kiện
>=, hãy đặt ngưỡng cao nhất lên đầu. - Có thể có tối đa 127 cặp.
- Không có đối số "còn lại" riêng. Một cặp cuối có điều kiện là
TRUElàm việc đó.
Một điều kiện thiếu giá trị đi kèm (số đối số lẻ) khiến Excel từ chối công thức với thông báo "You've entered too few arguments for this function".
TRUE làm giá trị mặc định, và #N/A khi không có gì khớp
Nếu không điều kiện nào là TRUE, IFS trả về #N/A. Cột C dưới đây không có giá trị mặc định và báo lỗi ở hai điểm thấp; cột D kết thúc bằng TRUE,"F" và bắt được chúng:
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Student | Score | No default | TRUE default |
| 2 | Ana | 94 | A | A |
| 3 | Ben | 81 | B | B |
| 4 | Dan | 65 | #N/A | F |
| 5 | Eve | 88 | B | B |
| 6 | Gus | 52 | #N/A | F |
#N/A Giá trị bạn tìm không có trong vùng tra cứu.TRUE là điều kiện luôn đúng, nên chỉ được xét đến khi mọi điều kiện trước nó đều FALSE, và nó phải là cặp cuối cùng: mọi thứ sau nó không bao giờ được kiểm tra. Giá trị mặc định có thể là bất kỳ giá trị nào: TRUE,"" để ô trống, TRUE,"Check" để đánh dấu hàng. Nếu muốn giấu #N/A mà không dùng giá trị mặc định, =IFNA(IFS(...),"No grade") cũng được; trang IFERROR giải thích IFNA.
IFS với văn bản và với AND hoặc OR
Các điều kiện là biểu thức logic bình thường, nên có thể so sánh văn bản và dùng AND, OR. Ở đây hình thức giao hàng phụ thuộc vào khu vực và tổng giá trị đơn hàng:
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Order | Region | Total | Delivery |
| 2 | 1001 | North | $120 | Free |
| 3 | 1002 | North | $60 | Standard |
| 4 | 1003 | South | $150 | Express |
| 5 | 1004 | East | $40 | Post |
| 6 | 1005 | north | $300 | Free |
Đơn 1001 thuộc North và trên 100, nên được Free. Đơn 1002 thuộc North nhưng dưới 100, nên điều kiện đầu sai và điều kiện thứ hai, B2="North", cho ra Standard. Phép so sánh văn bản không phân biệt chữ hoa chữ thường, nên đơn 1005, ghi là north, cũng được Free.
Khi mọi điều kiện đều so sánh cùng một ô với một giá trị cố định (B2="N", B2="S", B2="E"), SWITCH chỉ cần liệt kê mỗi giá trị một lần và ngắn hơn: =SWITCH(B2,"N","North","S","South","Other").
Luyện tập: tốc độ giao hàng
| A | B | C | |
|---|---|---|---|
| 1 | Order | Days | Speed |
| 2 | 1001 | 3 | |
| 3 | 1002 | 1 | |
| 4 | 1003 | 7 | |
| 5 | 1004 | 2 | |
| 6 | 1005 | 5 |
Đến lượt bạn: Trong C2, trả về "Express" khi số ngày ở B2 từ 1 trở xuống, "Standard" khi từ 3 trở xuống, và "Slow" trong trường hợp còn lại. Dùng IFS. Công thức được kéo xuống đến C6.
IFS và IF lồng nhau
Hai công thức dưới đây trả về cùng một xếp loại cho mọi điểm số:
=IF(B2>=90,"A",IF(B2>=80,"B",IF(B2>=70,"C","F")))
=IFS(B2>=90,"A",B2>=80,"B",B2>=70,"C",TRUE,"F")
| IFS | IF lồng nhau | |
|---|---|---|
| Dấu ngoặc | Một cặp | Mỗi IF một cặp |
| Giá trị mặc định | Một cặp TRUE ở cuối | value_if_false của IF cuối cùng |
| Không điều kiện nào khớp | #N/A, trừ khi bạn thêm TRUE | value_if_false của IF cuối cùng (FALSE nếu bạn bỏ trống) |
| Giới hạn | 127 cặp | 64 IF lồng nhau |
| Excel 2016 trở về trước | #NAME? | Dùng được |
Chọn IFS khi mọi người mở tệp đều có Excel 2019 trở lên, và IF lồng nhau khi tệp được gửi cho người dùng Excel cũ hơn. Nếu chỉ có hai kết quả, một IF đơn giản dễ hơn cả hai. Với nhiều khoảng số (bậc thuế, mức cân nặng vận chuyển), cả hai đều không phải công cụ tốt nhất: một bảng tra cứu với kiểu khớp gần đúng giữ các ngưỡng trong ô, như minh họa ở trang IF lồng nhau.
Câu hỏi thường gặp
Làm sao thêm giá trị còn lại (else) cho IFS?
Cho điều kiện cuối là TRUE, luôn luôn đúng: =IFS(B2>=90,"A",B2>=80,"B",TRUE,"F"). Mọi giá trị không khớp điều kiện nào phía trước sẽ nhận F.
Vì sao IFS trả về #N/A?
Không điều kiện nào là TRUE và không có cặp TRUE ở cuối. =IFS(B2>=90,"A",B2>=80,"B") trả về #N/A với điểm 75. Thêm TRUE,"F" vào cuối, hoặc bọc công thức trong IFNA.
Phiên bản Excel nào có IFS?
Excel 2019, Excel 2021, Excel 2024 và Microsoft 365, cùng Excel cho web. Trong Excel 2016 trở về trước, công thức có IFS hiện #NAME?, nên ở đó hãy dùng IF lồng nhau. Google Sheets cũng có IFS.
IFS có tốt hơn IF lồng nhau không?
IFS dễ đọc hơn và chỉ có một dấu đóng ngoặc, nhưng cách hoạt động giống hệt: điều kiện TRUE đầu tiên thắng. IF lồng nhau vẫn là lựa chọn khi tệp phải mở được trong Excel 2016 hoặc cũ hơn.