Menu

Hàm IFS trong Excel: nhiều điều kiện mà không cần lồng IF

=IFS(B2>=90,"A",B2>=80,"B",B2>=70,"C",TRUE,"F") kiểm tra từng điều kiện theo thứ tự và trả về giá trị đi cùng điều kiện TRUE đầu tiên. Tìm hiểu cú pháp IFS, giá trị mặc định TRUE, vì sao IFS trả về #N/A và so sánh với IF lồng nhau.

Mọi bảng tính trên trang này đều trực tiếp: đổi một số hoặc công thức, bảng tính sẽ tự tính lại.

=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.

Xếp loại bằng IFS
C2
ABC
1StudentScoreGrade
2Ana94A
3Ben81B
4Chloe70C
5Dan65F
6Eve88B
7Finn90A
Bấm vào một ô để xem công thức. Đổi một số hoặc công thức, bảng tính sẽ tự tính lại.

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à TRUE là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:

Có và không có giá trị mặc định
C4
ABCD
1StudentScoreNo defaultTRUE default
2Ana94AA
3Ben81BB
4Dan65#N/AF
5Eve88BB
6Gus52#N/AF
#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:

Hình thức giao hàng
D2
ABCD
1OrderRegionTotalDelivery
21001North$120Free
31002North$60Standard
41003South$150Express
51004East$40Post
61005north$300Free
Bấm vào một ô để xem công thức. Đổi một số hoặc công thức, bảng tính sẽ tự tính lại.

Đơ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

Tốc độ vận chuyển
C2
ABC
1OrderDaysSpeed
210013
310021
410037
510042
610055
Bấm vào một ô để xem công thức. Đổi một số hoặc công thức, bảng tính sẽ tự tính lại.

Đế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")
IFSIF lồng nhau
Dấu ngoặcMột cặpMỗi IF một cặp
Giá trị mặc địnhMột cặp TRUE ở cuốivalue_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 TRUEvalue_if_false của IF cuối cùng (FALSE nếu bạn bỏ trống)
Giới hạn127 cặp64 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.

Hình minh họa các ngôn ngữ lập trình của Coddy

Học lập trình cùng Coddy

Bắt đầu