Có thể bạn quan tâm: Tô Màu Tự Động Trong Excel: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao
1. Giới thiệu chung về câu lệnh IF trong Excel
Câu lệnh IF (hay còn gọi là hàm IF) là một trong những hàm logic quan trọng và phổ biến nhất trong Microsoft Excel. Nhờ khả năng đưa ra quyết định dựa trên một điều kiện nhất định, hàm IF giúp người dùng thực hiện các phép tính, phân loại dữ liệu, tạo báo cáo tự động và xây dựng các mô hình phân tích phức tạp. Dù bạn là người mới bắt đầu làm việc với Excel hay là một chuyên gia phân tích dữ liệu, việc nắm vững cách sử dụng hàm IF sẽ mở ra vô số tiềm năng cho công việc của bạn.
Trong bài viết này, chúng ta sẽ đi sâu vào:
- Cấu trúc cơ bản của hàm IF.
- Các ví dụ thực tế trong công việc kinh doanh, tài chính, giáo dục, và quản lý dự án.
- Cách kết hợp IF với các hàm khác như AND, OR, NOT, IFS, IFERROR, CHOOSE, VLOOKUP, INDEX/MATCH.
- Các kỹ thuật tối ưu hoá công thức IF để cải thiện hiệu suất và giảm lỗi.
- Những lưu ý, lỗi thường gặp và cách khắc phục.
Bài viết sẽ được chia thành nhiều phần chi tiết, mỗi phần cung cấp kiến thức lý thuyết kèm theo ví dụ minh họa bằng bảng tính thực tế. Khi đọc xong, bạn sẽ có thể tự tin áp dụng hàm IF trong mọi tình huống thực tế và xây dựng các công thức phức tạp hơn.
Có thể bạn quan tâm: Cách Làm Nhẹ File Excel: Hướng Dẫn Chi Tiết Để Tối Ưu Hóa Dữ Liệu Và Nâng Cao Hiệu Suất
2. Cú pháp cơ bản của hàm IF
2.1. Cú pháp chuẩn
IF(logical_test, value_if_true, value_if_false)
- logical_test: Điều kiện logic cần kiểm tra (ví dụ: A1>100, B2=”Nam”, C3<>0).
- value_if_true: Giá trị trả về nếu logical_test đúng (TRUE). Có thể là một số, văn bản, công thức, hoặc thậm chí là một hàm IF lồng nhau.
- value_if_false (tùy chọn): Giá trị trả về nếu logical_test sai (FALSE). Nếu bỏ qua, Excel sẽ trả về FALSE.
2.2. Ví dụ đơn giản
| A | B |
|---|---|
| 150 | =IF(A2>100, “Lớn hơn 100”, “Nhỏ hơn hoặc bằng 100”) |
Kết quả: “Lớn hơn 100” vì 150 > 100.
Nếu bỏ phần value_if_false:
| A | B |
|---|---|
| 80 | =IF(A3>100, “Lớn hơn 100”) |
Kết quả: FALSE vì điều kiện không thỏa.
Có thể bạn quan tâm: Cách Kẻ Bảng Trong Excel 2026: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao
3. Ứng dụng thực tế của hàm IF
3.1. Phân loại học sinh dựa trên điểm trung bình
Giả sử cột C chứa điểm trung bình (GPA) của học sinh. Ta muốn phân loại:
- GPA ≥ 8.0 → “Xuất sắc”
- 6.5 ≤ GPA < 8.0 → “Khá”
- 5.0 ≤ GPA < 6.5 → “Trung bình”
- GPA < 5.0 → “Yếu”
Công thức lồng IF:
=IF(C2>=8,"Xuất sắc", IF(C2>=6.5,"Khá", IF(C2>=5,"Trung bình","Yếu")))
3.2. Tính tiền lương bonus dựa trên doanh thu
| Nhân viên | Doanh thu (triệu) | Bonus |
|---|---|---|
| A | 120 | =IF(B2>100, B20.1, B20.05) |
| B | 80 | =IF(B3>100, B30.1, B30.05) |
Nếu doanh thu > 100 triệu, bonus 10%; ngược lại 5%.
3.3. Kiểm tra ngày hết hạn
Giả sử ô D2 chứa ngày hết hạn hợp đồng. Muốn hiển thị:
- “Hết hạn” nếu ngày hiện tại > ngày hết hạn.
- “Còn hạn” nếu còn lại ít hơn 30 ngày.
- “Đang hoạt động” nếu còn hơn 30 ngày.
=IF(TODAY()>D2,"Hết hạn", IF(D2-TODAY()<=30,"Còn hạn","Đang hoạt động"))
3.4. Xác định mức thuế thu nhập cá nhân (TNCN)
Giả sử thu nhập chịu thuế (ô E2) và mức thuế:
| Thu nhập (triệu) | Thuế |
|---|---|
| ≤ 5 | 5% |
| 5 < ≤ 10 | 10% |
| > 10 | 20% |
Công thức:
=IF(E2<=5, E20.05, IF(E2<=10, E20.10, E20.20))
4. Kết hợp IF với các hàm logic khác
4.1. Hàm AND và OR
- AND(logical1, logical2, …): Trả về TRUE nếu tất cả các điều kiện đều đúng.
- OR(logical1, logical2, …): Trả về TRUE nếu ít nhất một điều kiện đúng.
4.1.1. Ví dụ: Kiểm tra điều kiện tuyển dụng
Yêu cầu: Ứng viên phải:
- Tuổi từ 22 đến 35.
- Kinh nghiệm ≥ 2 năm.
- Trình độ bằng đại học trở lên.
=IF(AND(A2>=22, A2<=35, B2>=2, C2>="Đại học"), "Đạt", "Không đạt")
4.1.2. Ví dụ: Phân loại khách hàng
- Nếu khách hàng mua > 10 đơn hoặc tổng giá trị > 100 triệu → “Khách VIP”.
- Ngược lại → “Khách thường”.
=IF(OR(D2>10, E2>100), "Khách VIP", "Khách thường")
4.2. Hàm NOT
NOT(logical) trả về giá trị ngược lại của logical. Thường dùng khi muốn đảo ngược một điều kiện.
=IF(NOT(A2="Đã thanh toán"), "Chưa thanh toán", "Đã thanh toán")
4.3. Hàm IFS (Excel 2026 trở lên)
IFS cho phép viết nhiều điều kiện mà không cần lồng IF liên tục, giúp công thức ngắn gọn và dễ đọc.
=IFS( C2>=8, "Xuất sắc", C2>=6.5, "Khá", C2>=5, "Trung bình", TRUE, "Yếu")
Lưu ý: IFS không có đối số value_if_false riêng, vì luôn có điều kiện TRUE cuối cùng để bắt mọi trường hợp còn lại.
4.4. Hàm IFERROR
Khi công thức IF (hoặc bất kỳ hàm nào) trả về lỗi #DIV/0!, #N/A, #VALUE!, #REF!, #NAME?, #NUM!, #NULL!, ta có thể dùng IFERROR để thay thế bằng giá trị mong muốn.
=IFERROR( A2/B2, "Không chia được" )
Kết hợp với IF:
=IFERROR( IF(B2>0, A2/B2, "B2 bằng 0"), "Lỗi công thức")
5. Lồng nhiều hàm IF – Khi nào nên dùng và khi nào nên tránh
5.1. Khi nên lồng IF
- Khi số lượng điều kiện ít (thường ≤ 5) và mỗi điều kiện độc lập.
- Khi cần trả về các giá trị khác nhau cho mỗi mức độ (ví dụ: phân loại điểm, mức thuế, mức thưởng).
5.2. Khi nên tránh lồng IF
- Khi số lượng điều kiện lớn (> 7) → công thức trở nên khó bảo trì, dễ sai.
- Khi các điều kiện có thể biểu diễn bằng bảng tra cứu (lookup) → dùng VLOOKUP, HLOOKUP, XLOOKUP, hoặc INDEX/MATCH để thay thế.
- Khi có nhiều điều kiện logic phức tạp → cân nhắc dùng CHOOSE, SWITCH (Excel 2026/365), hoặc tạo cột trợ trợ để tính toán từng phần.
5.3. Ví dụ thay thế lồng IF bằng bảng lookup
Giả sử chúng ta có bảng mức thuế:
| Thu nhập (triệu) | Thuế (%) |
|---|---|
| 0 – 5 | 5 |
| 5 – 10 | 10 |
| >10 | 20 |
Thay vì lồng IF, tạo bảng:
| Min | Max | Thuế |
|---|---|---|
| 0 | 5 | 5% |
| 5 | 10 | 10% |
| 10 | 9999 | 20% |
Sau đó dùng VLOOKUP kết hợp TRUE:
=VLOOKUP(E2, $H$2:$J$4, 3, TRUE) E2
Hoặc dùng XLOOKUP (Excel 365):
=XLOOKUP(E2, $H$2:$H$4, $J$2:$J$4, , 1) E2
6. Các thủ thuật nâng cao để tối ưu công thức IF
6.1. Sử dụng hàm CHOOSE để giảm độ sâu lồng IF

Có thể bạn quan tâm: Cách Tạo Link Trên Excel: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao
Nếu các giá trị trả về là một tập hợp cố định và điều kiện có dạng n-1 (ví dụ: “Nếu A2=1 trả X, =2 trả Y, =3 trả Z”), ta có thể dùng CHOOSE:
=CHOOSE(A2, "Giá trị 1", "Giá trị 2", "Giá trị 3")
Kết hợp với MATCH để chuyển điều kiện thành chỉ số:
=CHOOSE(MATCH(B2, {"Low","Medium","High"},0), 10, 20, 30)
6.2. Sử dụng hàm SWITCH (Excel 2026/365)
SWITCH cho phép so sánh một biểu thức với nhiều giá trị:
=SWITCH(A2, "A", "Đánh giá A", "B", "Đánh giá B", "C", "Đánh giá C", "Khác")
6.3. Tối ưu tốc độ tính toán
- Giảm số lần lồng IF: Mỗi IF lồng thêm một lớp tính toán, làm chậm khi dữ liệu lớn (hàng chục nghìn+). Thay bằng lookup hoặc array formulas.
- Tránh tính toán lại cùng một giá trị: Tạo cột trợ giúp để tính toán một lần, sau đó tham chiếu.
- Sử dụng toán tử “&” để nối chuỗi thay vì lồng IF quá sâu khi muốn xây dựng thông báo.
=IF(A2>100, "Lớn hơn 100", "") & IF(B2<50, " và nhỏ hơn 50", "")
6.4. Kiểm soát lỗi #SPILL! trong công thức mảng
Khi dùng hàm mảng động (dynamic array) trong Excel 365, đôi khi công thức IF trả về mảng gây lỗi #SPILL! nếu không có đủ ô trống. Đảm bảo vùng đích đủ rộng hoặc dùng @ (operator implicit intersection) để ép trả về giá trị đơn.
=SUM(IF(A1:A100>50, 1, 0)) // công thức mảng, nhấn Ctrl+Shift+Enter trong phiên bản cũ, hoặc chỉ cần Enter trong 365.
7. Các lỗi thường gặp khi dùng hàm IF và cách khắc phục
| Lỗi | Nguyên nhân | Cách khắc phục |
|---|---|---|
| #VALUE! | Tham chiếu tới ô chứa văn bản khi so sánh số, hoặc sử dụng phép toán không hợp lệ trong logical_test. | Đảm bảo kiểu dữ liệu phù hợp, dùng hàm VALUE(), TEXT(), hoặc — để chuyển đổi. |
| #N/A | Khi dùng hàm lookup trong value_if_true/value_if_false và không tìm thấy giá trị. | Bọc lookup bằng IFERROR hoặc IFNA. |
| #DIV/0! | Chia cho 0 trong công thức IF (ví dụ: IF(B2=0,0,A2/B2)). | Kiểm tra điều kiện chia cho 0 trước khi thực hiện phép chia. |
| Kết quả không như mong đợi | Lỗi logic trong logical_test (ví dụ: dùng = thay vì >=, hoặc không xét hết các trường hợp). | Kiểm tra lại các điều kiện, sử dụng Evaluate Formula (Ribbon → Formulas → Evaluate Formula) để xem từng bước tính toán. |
| Công thức quá dài, khó đọc | Lồng IF quá sâu. | Dùng IFS, SWITCH, CHOOSE, hoặc tạo bảng tra cứu. |
| Hiệu suất chậm | Hàng ngàn công thức IF phức tạp. | Thay bằng lookup, tạo cột trợ giúp, hoặc dùng Power Query để xử lý dữ liệu trước. |
8. Thực hành: Xây dựng một bảng tính “Quản lý dự án” với IF
8.1. Yêu cầu
- Cột A: Tên dự án.
- Cột B: Ngày bắt đầu.
- Cột C: Ngày kết thúc dự kiến.
- Cột D: Tiến độ (%) hiện tại.
- Cột E: Trạng thái dự án (Dựa trên ngày hiện tại và tiến độ).
Quy tắc trạng thái:
| Điều kiện | Trạng thái |
|---|---|
| Nếu ngày hiện tại > ngày kết thúc và tiến độ < 100% | “Trễ” |
| Nếu ngày hiện tại ≤ ngày kết thúc và tiến độ ≥ 100% | “Hoàn thành sớm” |
| Nếu ngày hiện tại ≤ ngày kết thúc và 0% < tiến độ < 100% | “Đang thực hiện” |
| Nếu tiến độ = 0% | “Chưa bắt đầu” |
| Ngược lại | “Không xác định” |
8.2. Công thức IF lồng
=IF(AND(TODAY()>C2, D2<100), "Trễ", IF(AND(TODAY()<=C2, D2>=100), "Hoàn thành sớm", IF(AND(TODAY()<=C2, D2>0, D2<100), "Đang thực hiện", IF(D2=0, "Chưa bắt đầu", "Không xác định"))))
8.3. Cải tiến bằng IFS (Excel 2026+)
=IFS( AND(TODAY()>C2, D2<100), "Trễ", AND(TODAY()<=C2, D2>=100), "Hoàn thành sớm", AND(TODAY()<=C2, D2>0, D2<100), "Đang thực hiện", D2=0, "Chưa bắt đầu", TRUE, "Không xác định")
8.4. Tối ưu bằng bảng tra cứu
Tạo bảng StatusRules:
| RuleID | Condition | Status |
|---|---|---|
| 1 | TODAY()>C2 AND D2<100 | Trễ |
| 2 | TODAY()<=C2 AND D2>=100 | Hoàn thành sớm |
| 3 | TODAY()<=C2 AND D2>0 AND D2<100 | Đang thực hiện |
| 4 | D2=0 | Chưa bắt đầu |
| 5 | TRUE | Không xác định |
Sau đó dùng SWITCH kết hợp MATCH:
=LET( cond1, AND(TODAY()>C2, D2<100), cond2, AND(TODAY()<=C2, D2>=100), cond3, AND(TODAY()<=C2, D2>0, D2<100), cond4, D2=0, idx, MATCH(TRUE, {cond1,cond2,cond3,cond4,TRUE},0), SWITCH(idx, 1,"Trễ", 2,"Hoàn thành sớm", 3,"Đang thực hiện", 4,"Chưa bắt đầu", "Không xác định"))
Công thức này giảm độ sâu lồng và dễ bảo trì hơn.
9. Sử dụng hàm IF trong Power Query và Power Pivot
9.1. Power Query (M language)
Trong Power Query, hàm if…then…else được viết theo cú pháp:
if ColumnA > 100 then "Lớn" else "Nhỏ"
Có thể kết hợp với and, or:
if Age >= 22 and Age <= 35 and Experience >= 2 then "Đạt" else "Không đạt"
Power Query rất mạnh khi xử lý dữ liệu trước khi tải vào bảng tính, giúp giảm số lượng công thức IF trong Excel.
9.2. Power Pivot (DAX)
Trong DAX, hàm IF có cú pháp:
IF(<LogicalTest>, <ResultIfTrue>, <ResultIfFalse>)
Ví dụ, tạo cột tính bonus:
Bonus = IF('Sales'Revenue > 1000000, 'Sales'Revenue 0.1, 'Sales'Revenue 0.05)
DAX còn cung cấp hàm SWITCH, CALCULATE, FILTER để thực hiện các logic phức tạp mà IF trong Excel không đáp ứng tốt.
10. Các ví dụ nâng cao: Sử dụng IF trong mô hình tài chính
10.1. Tính lãi suất vay thay đổi theo mức vay
| Khoản vay (triệu) | Lãi suất |
|---|---|
| ≤ 500 | 6% |
| 500 < ≤ 1,000 | 5.5% |
| > 1,000 | 5% |
Công thức IF lồng:
=IF(A2<=500, A20.06, IF(A2<=1000, A20.055, A20.05))
10.2. Mô hình DCF (Discounted Cash Flow) với điều kiện tăng trưởng
Giả sử dòng tiền năm 1-5 là cố định, năm 6 trở đi tăng 3% nếu công ty đạt doanh thu > 200 triệu.
=IF(Revenue_Year5 > 200, CashFlow_Year5 (1+3%), CashFlow_Year5)
Kết hợp với NPV:
=NPV(DiscountRate, CashFlow_Year1, CashFlow_Year2, CashFlow_Year3, CashFlow_Year4, CashFlow_Year5, IF(Revenue_Year5>200, CashFlow_Year51.03, CashFlow_Year5))
11. Thực hành nâng cao: Tạo dashboard “Phân tích khách hàng” bằng IF + Conditional Formatting
- Bước 1: Thêm cột “Nhóm khách hàng” với công thức IF/IFS dựa trên tổng mua hàng và tần suất.
excel =IFS( AND(TotalSpend>100000, Frequency>12), "VIP", AND(TotalSpend>50000, Frequency>6), "Gold", TotalSpend>20000, "Silver", TRUE, "Bronze") - Bước 2: Áp dụng Conditional Formatting để tô màu các nhóm:
- VIP: màu vàng.
- Gold: màu cam.
- Silver: màu xanh nhạt.
Bronze: màu xám.
Bước 3: Dùng PivotTable để tổng hợp doanh thu theo nhóm, sau đó chèn Slicer để lọc nhanh.
Nhờ hàm IF/IFS, việc phân nhóm tự động cập nhật khi dữ liệu thay đổi, giúp dashboard luôn “sống động”.
12. Kết luận
Hàm IF trong Excel không chỉ là một công cụ kiểm tra điều kiện đơn giản mà còn là nền tảng để xây dựng các logic phức tạp, tự động hoá quy trình và tạo ra các mô hình phân tích dữ liệu mạnh mẽ. Khi được kết hợp khéo léo với các hàm AND, OR, NOT, IFS, IFERROR, CHOOSE, SWITCH, VLOOKUP, XLOOKUP, INDEX/MATCH, hoặc các công cụ nâng cao như Power Query và Power Pivot, hàm IF trở thành một “cây đa năng” giúp giải quyết hầu hết các bài toán trong môi trường doanh nghiệp và học thuật.
Những điểm quan trọng cần nhớ:
- Cấu trúc cơ bản:
IF(logical_test, value_if_true, value_if_false). - Lồng IF chỉ nên dùng khi số lượng điều kiện ít; nếu nhiều, hãy cân nhắc IFS, SWITCH hoặc lookup.
- Kết hợp với AND/OR để tạo điều kiện phức tạp.
- Sử dụng IFERROR để xử lý lỗi một cách gọn gàng.
- Tối ưu hiệu suất bằng cách giảm độ sâu lồng, dùng bảng tra cứu và cột trợ giúp.
- Kiểm tra và debug bằng công cụ Evaluate Formula và Formula Auditing.
- Mở rộng sang Power Query và DAX khi làm việc với dữ liệu lớn hoặc mô hình dữ liệu đa chiều.
Hy vọng qua bài viết chi tiết này, bạn đã nắm vững cách sử dụng hàm IF trong mọi mức độ, từ những công thức đơn giản đến các giải pháp phức tạp cho doanh nghiệp. Hãy thực hành, thử nghiệm và dần dần tích lũy các “mẫu công thức” riêng cho mình – vì trong thực tế, mỗi bài toán là một câu chuyện, và hàm IF chính là ngôn ngữ để kể câu chuyện đó trong Excel. Chúc bạn thành công!

Tiến sĩ Lê Thống Nhất sinh năm 1955 tại Nghệ An, là nhà giáo, nhà báo và doanh nhân trong lĩnh vực giáo dục. Ông từng giảng dạy Toán học tại Trường THPT Chuyên Phan Bội Châu và đảm nhiệm nhiều vai trò trong ngành giáo dục, từ viết sách, biên soạn tài liệu đến sáng lập các dự án hỗ trợ học tập trực tuyến.
Ông là người sáng lập BigSchool – nền tảng giáo dục trực tuyến kết nối giáo viên và học sinh cả nước. Ngoài ra, ông còn nổi tiếng với vai trò tác giả, diễn giả truyền cảm hứng và khách mời trên nhiều chương trình truyền hình, trong đó có “Ai là triệu phú” trên truyền hình VTV.
Trong suốt sự nghiệp, Tiến sĩ Lê Thống Nhất đã nhận nhiều giải thưởng giáo dục và được biết đến như một người luôn đổi mới, ứng dụng công nghệ vào dạy và học, góp phần lan tỏa tri thức và niềm say mê học tập cho thế hệ trẻ.
