# Cách dùng hàm IF nhiều điều kiện trong Google Sheets và Excel: IF lồng, IFS, AND/OR, SWITCH

Muốn xét nhiều điều kiện, bạn có ba cách: lồng nhiều IF vào nhau, dùng IFS (xét lần lượt từng cặp điều kiện – kết quả), hoặc ghép AND/OR khi cần nhiều điều kiện cùng đúng một lúc. Với 5–7 mức trở lên như bậc thưởng doanh số, tra một bảng nhỏ gọn hơn hẳn lồng IF. Bài đi qua từng cách với ví dụ xếp loại học sinh, thưởng doanh số, phụ cấp, kèm cách xử lý ô trống, so sánh chữ và những lỗi làm công thức ra sai mà không báo.

Đăng 2026-10-19 · 11 phút đọc · Hàm IF, IFS, Công thức, Google Sheets, Excel

## Hàm IF hoạt động thế nào

IF hỏi một câu có hoặc không. Đúng thì trả về giá trị thứ nhất, sai thì trả về giá trị thứ hai. Mọi công thức nhiều điều kiện trong bài đều xây từ khối này.

Cú pháp. Vùng Việt Nam cách đối số bằng dấu chấm phẩy.

```
=IF(điều_kiện; giá_trị_nếu_đúng; giá_trị_nếu_sai)
```

B2 là điểm trung bình của học sinh.

```
=IF(B2>=5;"Đạt";"Chưa đạt")
```

**Thử lại:** B2 = 6,2 thì 6,2 ≥ 5 đúng, ra **Đạt**. B2 = 4,9 ra **Chưa đạt**.

- **2–3 mức:** IF lồng là đủ
- **4–6 mức:** IFS dễ đọc hơn, nhớ thêm TRUE cuối
- **Nhiều điều kiện cùng lúc:** AND (tất cả đúng), OR (một cái đúng)
- **Từ 5 bậc trở lên:** Tra bảng bằng VLOOKUP TRUE hoặc XLOOKUP -1

**Dấu thập phân là dấu phẩy:** Ở vùng Việt Nam, số lẻ viết 6,5 chứ không phải 6.5, và đối số cách bằng dấu chấm phẩy. Gõ 6.5 trong công thức thì Google Sheets báo lỗi phân tích công thức. Vùng của file nằm ở Tệp › Cài đặt.

## IF lồng nhau: xếp loại học sinh theo điểm

Khi có nhiều hơn hai kết quả, bạn đặt một IF mới vào chỗ "giá trị nếu sai" của IF trước. Ví dụ xếp loại theo thang tự đặt (không phải quy chế đánh giá của Bộ): từ 8 trở lên là Giỏi, từ 6,5 là Khá, từ 5 là Trung bình, còn lại là Yếu.

Ba IF lồng nhau cho bốn mức. Cuối công thức có ba dấu ngoặc đóng, đúng bằng số IF.

```
=IF(B2>=8;"Giỏi";IF(B2>=6,5;"Khá";IF(B2>=5;"Trung bình";"Yếu")))
```

**Thử lại:** B2 = 7,8. IF thứ nhất: 7,8 ≥ 8 sai, chuyển sang IF thứ hai. 7,8 ≥ 6,5 đúng, trả về **Khá** và dừng, không xét tiếp. B2 = 9,1 ra Giỏi; B2 = 5 ra Trung bình (vì dùng ≥); B2 = 3,5 ra Yếu.

Đọc IF lồng từ trái sang phải: mỗi IF chỉ chạy tới khi IF đứng trước nó sai. Vì vậy với dấu ≥, mốc **lớn nhất phải đứng đầu**. Excel cho lồng tối đa 64 IF, nhưng quá 3–4 tầng là đã khó sửa.

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

IFS nhận từng cặp điều kiện – kết quả và trả về kết quả của điều kiện đúng **đầu tiên**. Cùng ví dụ xếp loại:

Cặp cuối TRUE;"Yếu" đóng vai "còn lại".

```
=IFS(B2>=8;"Giỏi";B2>=6,5;"Khá";B2>=5;"Trung bình";TRUE;"Yếu")
```

**Thử lại:** B2 = 7,8 cho ra Khá như IF lồng. B2 = 3,5: ba điều kiện đầu đều sai, đến TRUE (luôn đúng) nên ra **Yếu**.

**IFS không có "giá trị nếu sai":** Theo trợ giúp của Google, nếu mọi điều kiện đều sai thì IFS trả về #N/A. Bỏ cặp TRUE;"Yếu" đi thì học sinh 3,5 điểm sẽ hiện #N/A. Luôn kết thúc IFS bằng TRUE và giá trị mặc định.

IFS có trên Google Sheets và Excel 2019, Excel 2021, Microsoft 365. Nếu file sẽ mở bằng Excel 2016 trở về trước, IFS báo lỗi #NAME?, khi đó dùng IF lồng.

![So sánh hai công thức IFS: bên sai đặt B2>=5 lên đầu nên điểm 9 và điểm 7 đều ra Trung bình; bên đúng đặt B2>=8 lên đầu nên ra Giỏi, Khá, Yếu](https://www.hitava.cloud/img/blog/cach-dung-ham-if-nhieu-dieu-kien/thu-tu.webp)
*Cùng ba điều kiện, chỉ khác thứ tự: bên trái không báo lỗi nhưng xếp sai cả lớp.*

## IF kết hợp AND, OR: thưởng doanh số, phụ cấp

**AND** đúng khi tất cả điều kiện bên trong đều đúng. **OR** đúng khi chỉ cần một điều kiện đúng. Đặt chúng vào chỗ điều kiện của IF.

Ví dụ bảng lương: C2 là doanh số tháng, D2 là số ngày công, E2 là bộ phận. Quy định thưởng: doanh số từ 100 triệu **và** đủ 24 công thì thưởng 2.000.000.

Cả hai điều kiện phải đúng.

```
=IF(AND(C2>=100000000;D2>=24);2000000;0)
```

**Thử lại:** C2 = 120.000.000, D2 = 22. Doanh số đạt nhưng 22 < 24 nên AND sai, thưởng **0**. Sửa D2 thành 25 thì ra 2.000.000.

Phụ cấp 500.000 cho người ở bộ phận Kho **hoặc** Giao hàng:

```
=IF(OR(E2="Kho";E2="Giao hàng");500000;0)
```

**Thử lại:** E2 = Giao hàng ra **500.000**; E2 = Văn phòng ra 0.

Ghép cả hai: chỉ người ở Kho hoặc Giao hàng **và** đủ 24 công mới có phụ cấp:

OR nằm bên trong AND. Đếm ngoặc: AND( mở, OR( mở, đóng OR, đóng AND, rồi mới tới giá trị.

```
=IF(AND(D2>=24;OR(E2="Kho";E2="Giao hàng"));500000;0)
```

**Thử lại:** D2 = 26, E2 = Kho: điều kiện công đúng, OR đúng, ra **500.000**. D2 = 20, E2 = Kho ra 0.

Kết hợp với IFS để có nhiều mức thưởng theo hai tiêu chí: từ 200 triệu và đủ công thưởng 5 triệu, từ 100 triệu và đủ công thưởng 2 triệu, còn lại 0.

```
=IFS(AND(C2>=200000000;D2>=24);5000000;AND(C2>=100000000;D2>=24);2000000;TRUE;0)
```

**Thử lại:** C2 = 230.000.000, D2 = 26 ra **5.000.000**. C2 = 150.000.000, D2 = 26 thì cặp thứ nhất sai (150 < 200), cặp thứ hai đúng, ra 2.000.000.

## Hàm SWITCH: so khớp đúng một giá trị

Khi điều kiện chỉ là "ô này bằng chữ gì", như phụ cấp theo chức vụ, SWITCH ngắn hơn IF lồng vì không phải lặp lại E2= ở mỗi tầng.

Số 0 cuối cùng là giá trị mặc định khi không khớp chức vụ nào.

```
=SWITCH(E2;"Trưởng nhóm";1500000;"Tổ phó";800000;"Nhân viên";300000;0)
```

**Thử lại:** E2 = Tổ phó ra **800.000**. E2 = Thực tập ra 0. Bỏ số 0 cuối thì chức vụ không có trong danh sách sẽ hiện #N/A.

SWITCH chỉ so **bằng**, không so lớn hơn, nhỏ hơn được, nên không dùng cho xếp loại theo điểm. Giống IFS, SWITCH có trên Google Sheets và Excel 2019 trở lên. Để chức vụ luôn gõ đúng chữ, cho cột đó chọn từ danh sách — xem [cách tạo danh sách thả xuống trong Google Sheets](https://www.hitava.cloud/blog/tao-danh-sach-tha-xuong-google-sheets).

## Tra bảng bậc thang thay vì lồng 7 IF

Thưởng theo 5 bậc doanh số mà viết bằng IF thì công thức dài, và mỗi lần công ty đổi mốc bạn phải sửa trong từng ô. Cách gọn hơn: kẻ một bảng mốc, cột "từ" xếp **tăng dần**, rồi tra gần đúng.

*Bảng mốc mẫu. Dòng đầu phải là 0, nếu không doanh số nhỏ hơn mốc đầu sẽ báo #N/A.*

|  | G: Doanh số từ | H: Tỷ lệ thưởng |
|---|---|---|
| 2 | 0 | 0% |
| 3 | 50.000.000 | 1% |
| 4 | 100.000.000 | 2% |
| 5 | 200.000.000 | 3% |
| 6 | 500.000.000 | 5% |

TRUE = khớp gần đúng: lấy mốc lớn nhất không vượt quá C2. Chạy trên Google Sheets và mọi bản Excel.

```
=VLOOKUP(C2;$G$2:$H$6;2;TRUE)
```

Chế độ khớp -1 = khớp chính xác, không có thì lấy giá trị nhỏ hơn kế tiếp. Có trên Google Sheets, Excel 2021 và Microsoft 365.

```
=XLOOKUP(C2;$G$2:$G$6;$H$2:$H$6;0;-1)
```

**Thử lại:** C2 = 150.000.000. Mốc lớn nhất không vượt 150 triệu là 100.000.000, nên cả hai công thức ra **2%**. Tiền thưởng =C2*VLOOKUP(C2;$G$2:$H$6;2;TRUE) = 150.000.000 × 2% = **3.000.000**. C2 = 500.000.000 đúng mốc ra 5%; C2 = 30.000.000 ra 0%.

![Bảng 5 mốc doanh số từ 0 đến 500.000.000 với tỷ lệ 0% đến 5%, dòng 100.000.000 – 2% tô xanh; công thức VLOOKUP TRUE và XLOOKUP -1 cùng ra 2%, thưởng 3.000.000](https://www.hitava.cloud/img/blog/cach-dung-ham-if-nhieu-dieu-kien/bac-thang.webp)
*Đổi mốc thưởng thì sửa bảng, không phải sửa từng công thức.*

Cách này tính một tỷ lệ cho **toàn bộ** doanh số. Nếu công ty tính luỹ tiến từng phần (phần dưới 50 triệu một tỷ lệ, phần trên tỷ lệ khác) thì cần công thức khác, đừng dùng nguyên công thức trên. Bảng mốc cũng chạy được với xếp loại học sinh: cột G là 0; 5; 6,5; 8 và cột H là Yếu, Trung bình, Khá, Giỏi.

## IF với ô trống

Ô trống được hiểu là 0 khi so sánh số. Học sinh chưa có điểm sẽ bị xếp **Yếu**, nhân viên chưa nhập doanh số bị tính thưởng 0 dù tháng chưa chốt. Bọc thêm một lớp kiểm ô trống ở ngoài cùng:

B2 trống thì để trống, có điểm mới xếp loại.

```
=IF(B2="";"";IFS(B2>=8;"Giỏi";B2>=6,5;"Khá";B2>=5;"Trung bình";TRUE;"Yếu"))
```

**Thử lại:** B2 trống ra ô trống; gõ 8 vào B2 ra Giỏi. Khi cần nhiều ô cùng phải có dữ liệu, dùng OR: =IF(OR(C2="";D2="");"";IF(AND(C2>=100000000;D2>=24);2000000;0)).

Nên dùng B2="" thay cho ISBLANK(B2). Ô chứa công thức trả về "" nhìn trống nhưng ISBLANK vẫn ra FALSE, còn B2="" ra TRUE ở cả hai trường hợp.

## So sánh chữ trong hàm IF

| Tình huống | Kết quả | Cách xử lý |
|---|---|---|
| E2 = "kho", điều kiện E2="Kho" | Đúng | IF không phân biệt chữ hoa, chữ thường. Cần phân biệt thì dùng EXACT(E2;"Kho") |
| E2 = "Kho " (thừa dấu cách) | Sai | Dấu cách thừa làm chữ khác đi. Dùng TRIM(E2)="Kho" hoặc cho chọn từ danh sách |
| E2 = "Kho tổng", muốn bắt chữ "Kho" | Sai với E2="Kho" | Tìm một phần: IF(ISNUMBER(SEARCH("kho";E2));…) |
| B2 là điểm gõ dạng chữ "7,8" | B2>=8 ra Đúng | Chữ luôn được coi là lớn hơn mọi số, nên điểm dạng chữ bị xếp Giỏi. Đổi cột về dạng số |
| Viết điều kiện B2>="5" (số trong ngoặc kép) | So sánh sai kiểu | Số trong điều kiện không đặt trong ngoặc kép; chỉ chữ mới cần |

Ô số bị lưu thành chữ thường gặp khi dán từ phần mềm khác hoặc từ web — dấu hiệu là số nằm lệch trái và SUM ra 0. Cách nhận ra và đổi lại có trong bài [sửa lỗi SUM bằng 0 trong Google Sheets](https://www.hitava.cloud/blog/sua-loi-sum-bang-0-trong-google-sheets).

## Lỗi hay gặp khi viết IF nhiều điều kiện

| Triệu chứng | Nguyên nhân | Sửa |
|---|---|---|
| Cả lớp ra cùng một loại | Sai thứ tự: mốc nhỏ đứng trước với dấu ≥ | Xếp mốc từ lớn xuống nhỏ (với ≤ thì từ nhỏ lên lớn) |
| #N/A ở vài dòng | IFS hoặc SWITCH thiếu giá trị mặc định | Thêm TRUE;"…" cuối IFS, thêm giá trị cuối cho SWITCH |
| Báo lỗi phân tích công thức | Thiếu hoặc thừa dấu ngoặc; dùng dấu phẩy thay chấm phẩy; số lẻ viết 6.5 | Đếm ngoặc: mỗi IF( cần một ) ở cuối; vùng Việt Nam dùng ; và 6,5 |
| Điểm 5 ra Yếu | Dùng > thay vì ≥ ở mốc biên | Đọc lại quy định "từ 5" hay "trên 5" |
| Kết quả 2000000 không cộng được | Viết "2000000" trong ngoặc kép nên thành chữ | Bỏ ngoặc kép quanh số |
| #NAME? khi mở bằng Excel | IFS, SWITCH, XLOOKUP không có ở Excel bản cũ | Dùng IF lồng hoặc VLOOKUP |

Công thức dài thì viết thử từng tầng trong ô riêng, chạy đúng rồi mới ghép lại; trước khi bấm Enter, đếm số IF( phải bằng số dấu ) ở cuối. Muốn công thức đã đúng không bị ai gõ đè, xem [cách khoá ô công thức trong Google Sheets](https://www.hitava.cloud/blog/khoa-o-cong-thuc-google-sheets).

## Điều kiện trong bảng lương và bảng điểm thực tế

Trong một bảng lương thật, IF xuất hiện ở rất nhiều chỗ: có đủ công chuẩn không, khoản thưởng có chịu thuế không, lương đóng bảo hiểm có thấp hơn sàn không, thực nhận có bị âm không. Mỗi điều kiện nhỏ, nhưng sai một chỗ là sai cả bảng. Cách an toàn là để mỗi bước tính một cột riêng, như cách tính từng bước trong bài [cách tính lương nhân viên bằng Excel](https://www.hitava.cloud/blog/cach-tinh-luong-nhan-vien-bang-excel).

![Tab Bảng lương của mẫu Chấm công & Tính lương PRO: các cột B1 công hưởng lương đến B9 thực nhận cho từng nhân viên, dòng tổng 63 người, một ô thực nhận âm -1.316.154 tô đỏ](https://www.hitava.cloud/img/blog/cach-dung-ham-if-nhieu-dieu-kien/bang-luong.webp)
*Bảng lương 9 bước trong mẫu Chấm công & Tính lương PRO: thực nhận âm được tô đỏ để kiểm lại.*

→ [Không muốn tự ghép hàng chục IF cho công chuẩn, tăng ca, bảo hiểm và thuế? Mẫu Chấm công & Tính lương PRO tính lương qua 9 bước, mỗi bước một cột nên xem được vì sao ra con số; tab Thưởng – Khấu trừ có loại khoản quyết định chịu thuế hay không, và cột Kiểm tra cảnh báo dòng bất thường.](https://www.hitava.cloud/san-pham/cham-cong-tinh-luong-pro)

Với bảng điểm, mẫu Quản lý lớp học PRO có tab bài kiểm tra theo thang điểm và hệ số, tự quy về thang 10, tính trung bình và thứ hạng, kèm phiếu báo cáo học tập từng học sinh.

→ [Dạy thêm hoặc mở trung tâm nhỏ: Quản lý lớp học PRO gom điểm danh, học phí, điểm số quy thang 10 và báo cáo học tập trong một file, không phải tự viết công thức xếp loại cho từng lớp.](https://www.hitava.cloud/san-pham/quan-ly-lop-hoc-pro)

## Đọc tiếp

- [Cách dùng hàm QUERY trong Google Sheets](https://www.hitava.cloud/blog/cach-dung-ham-query-google-sheets): Lọc và cộng theo nhiều điều kiện cả bảng một lúc
- [Tạo danh sách thả xuống trong Google Sheets](https://www.hitava.cloud/blog/tao-danh-sach-tha-xuong-google-sheets): Chữ luôn gõ đúng thì IF so sánh mới đúng
- [Sửa lỗi SUM bằng 0 trong Google Sheets](https://www.hitava.cloud/blog/sua-loi-sum-bang-0-trong-google-sheets): Số dạng chữ — cũng làm IF xếp loại sai
- [Google Sheets hay Excel](https://www.hitava.cloud/blog/google-sheets-hay-excel): Hàm nào có ở bên này mà không có ở bên kia

## Câu hỏi thường gặp

**Hàm IF nhiều điều kiện dùng IF lồng hay IFS tốt hơn?**

Kết quả như nhau. IFS dễ đọc và ít ngoặc hơn khi có từ 4 mức trở lên, nhưng phải thêm TRUE ở cuối và không chạy trên Excel 2016 trở về trước. File cần mở bằng Excel cũ thì dùng IF lồng.

**Tại sao công thức IF trả về #N/A?**

Thường là IFS hoặc SWITCH không có giá trị mặc định nên khi không điều kiện nào đúng thì ra #N/A. Thêm TRUE;"giá trị" vào cuối IFS, hoặc thêm giá trị cuối cho SWITCH. Nếu IF có VLOOKUP bên trong thì #N/A có thể đến từ VLOOKUP không tìm thấy.

**IF trong Google Sheets dùng dấu phẩy hay dấu chấm phẩy?**

Tuỳ vùng của file trong Tệp › Cài đặt. Vùng Việt Nam dùng dấu chấm phẩy giữa các đối số và dấu phẩy cho số lẻ: =IF(B2>=6,5;"Khá";"Chưa"). Vùng Hoa Kỳ dùng dấu phẩy giữa đối số và dấu chấm cho số lẻ.

**Làm sao để IF bỏ qua ô trống?**

Đặt kiểm tra ô trống ở ngoài cùng: =IF(B2="";"";công_thức_cũ). Ô trống không được kiểm sẽ bị coi là 0, nên học sinh chưa có điểm bị xếp loại thấp nhất.

**Có bao nhiêu mức thì nên chuyển sang tra bảng?**

Từ khoảng 5 mức, hoặc khi mốc hay thay đổi. Bảng mốc xếp tăng dần cộng VLOOKUP với TRUE (hoặc XLOOKUP chế độ -1) cho kết quả như IF lồng, và đổi mốc chỉ cần sửa bảng.

## Nguồn

- [Google — Hàm IF](https://support.google.com/docs/answer/3093364?hl=vi)
- [Google — Hàm IFS](https://support.google.com/docs/answer/7014145?hl=vi)
- [Google — Hàm AND](https://support.google.com/docs/answer/3093301?hl=vi)
- [Google — Hàm OR](https://support.google.com/docs/answer/3093306?hl=vi)
- [Google — Hàm SWITCH](https://support.google.com/docs/answer/7013690?hl=vi)
- [Google — Hàm VLOOKUP](https://support.google.com/docs/answer/3093318?hl=vi)
- [Google — Hàm XLOOKUP](https://support.google.com/docs/answer/12405947?hl=vi)

## Mẫu liên quan

- https://www.hitava.cloud/san-pham/cham-cong-tinh-luong-pro
- https://www.hitava.cloud/san-pham/quan-ly-lop-hoc-pro

Trang bài viết: https://www.hitava.cloud/blog/cach-dung-ham-if-nhieu-dieu-kien