
Hàm IF là một trong những công thức đầu tiên mọi người dùng Excel nên nắm vững. Về cơ bản, nó trả lời một câu hỏi đơn giản: "Điều kiện này là đúng hay sai — và tôi nên làm gì trong từng trường hợp?" Khi đã hiểu khái niệm đó, bạn có thể xây dựng hệ thống logic ra quyết định mạnh mẽ ngay trong bảng tính của mình, từ các bước kiểm tra đạt/trượt cơ bản đến các hệ thống chấm điểm và quy tắc kinh doanh nhiều cấp độ.
Hướng dẫn này sẽ đưa bạn đi từ những điều cơ bản nhất về hàm IF, sau đó tiến tới các hàm IF lồng nhau, các lỗi thường gặp và những hàm thay thế hiện đại mà Excel hiện cung cấp để giữ cho các logic phức tạp trở nên dễ đọc và dễ bảo trì hơn.
Cú pháp của hàm IF rất đơn giản:
=IF(logical_test, value_if_true, value_if_false)
A2>100, B5="Yes")Giả sử cột B chứa doanh số bán hàng và bạn muốn gắn cờ cho bất kỳ nhân viên nào vượt chỉ tiêu 10.000 đô la. Ở cột C, hãy nhập:
=IF(B2>10000, "Quota Met", "Below Quota")
Excel sẽ đánh giá xem B2 có lớn hơn 10.000 hay không. Nếu đúng, ô sẽ hiển thị "Quota Met"; ngược lại, nó hiển thị "Below Quota". Đó là toàn bộ cơ chế — mọi thứ khác chỉ là phần mở rộng của ý tưởng này.
Bạn cũng có thể trả về số thay vì văn bản, hoặc thậm chí trả về một công thức khác như một kết quả. Ví dụ:
=IF(B2>10000, B2*0.1, 0)
Công thức này chỉ tính 10% hoa hồng khi đạt chỉ tiêu, và trả về 0 trong trường hợp ngược lại.
Phép thử logic có thể sử dụng bất kỳ toán tử so sánh tiêu chuẩn nào của Excel:
| Toán tử | Ý nghĩa | Ví dụ |
|---|---|---|
| = | Bằng | A2="Approved" |
| <> | Không bằng (Khác) | A2<>"Pending" |
| > | Lớn hơn | B2>500 |
| < | Nhỏ hơn | B2<0 |
| >= | Lớn hơn hoặc bằng | C2>=90 |
| <= | Nhỏ hơn hoặc bằng | C2<=59 |
Bạn có thể kết hợp các điều kiện bằng AND và OR bên trong phép thử logic:
=IF(AND(B2>10000, C2="Active"), "Bonus Eligible", "Not Eligible")
Công thức này chỉ trả về "Bonus Eligible" khi cả hai điều kiện đồng thời đúng.
Sẽ ra sao nếu bạn cần nhiều hơn hai kết quả? Bạn có thể lồng một hàm IF vào trong một hàm IF khác. Trường hợp sử dụng kinh điển nhất là công cụ tính điểm xếp loại bằng chữ:
=IF(A2>=90, "A",
IF(A2>=80, "B",
IF(A2>=70, "C",
IF(A2>=60, "D", "F"))))
Excel sẽ đánh giá từng điều kiện từ trái sang phải. Ngay tại thời điểm một điều kiện là TRUE, nó sẽ trả về kết quả đó và bỏ qua phần còn lại. Vì vậy, số điểm 85 sẽ vượt qua phép thử đầu tiên (≥90) với kết quả FALSE, tiếp tục đến phép thử thứ hai (≥80) với kết quả TRUE và trả về "B".
Hàm IF lồng nhau không chỉ giới hạn ở việc trả về văn bản. Một công thức tính chiết khấu theo phân cấp có thể trông như thế này:
=IF(B2>=1000, B2*0.85,
IF(B2>=500, B2*0.90,
IF(B2>=100, B2*0.95, B2)))
Các đơn hàng từ 1.000 đô la trở lên được giảm giá 15%; 500–999 đô la được giảm 10%; 100–499 đô la được giảm 5%; mọi trường hợp khác đều phải trả nguyên giá. Loại logic này xuất hiện thường xuyên trong các trang tổng quan về bán hàng (sales dashboard) và theo dõi KPI, nơi các cấp độ hiệu suất quyết định mức hoa hồng hoặc xếp hạng.
IF(A2=Yes, ...) sẽ gây ra lỗi. Văn bản phải được đặt trong dấu ngoặc kép: IF(A2="Yes", ...).A2>=60 trước A2>=90, mọi điểm số cao đều sẽ khớp với ngưỡng đầu tiên (thấp hơn) và không bao giờ chạm tới các ngưỡng cao hơn.=IF(A2>10, "High") sẽ trả về FALSE (nguyên văn một từ) khi điều kiện không thỏa mãn. Nếu bạn muốn để trống ô, hãy sử dụng rõ ràng chuỗi "".IF("10">5, ...) có thể không hoạt động như mong đợi vì "10" ở đây là định dạng văn bản. Hãy sử dụng các kiểu dữ liệu nhất quán trong các ô của bạn.Excel 2019 và Microsoft 365 đã giới thiệu hàm IFS, giúp loại bỏ một núi dấu ngoặc đóng vốn làm cho hàm IF lồng nhau trở nên khó đọc. Cú pháp như sau:
=IFS(logical_test1, value1, logical_test2, value2, ...)
Công thức tính điểm chữ sẽ gọn gàng hơn rất nhiều:
=IFS(A2>=90, "A", A2>=80, "B", A2>=70, "C", A2>=60, "D", TRUE, "F")
Cặp cuối cùng TRUE, "F" đóng vai trò như một giải pháp dự phòng (catch-all) — nếu không có điều kiện nào trước đó là đúng, điều kiện này sẽ luôn đúng, do đó nó trả về "F". Hàm IFS là lựa chọn lý tưởng khi bạn có ba kết quả trở lên và muốn công thức duy trì được sự dễ đọc ngay từ cái nhìn đầu tiên.
Hàm SWITCH là lựa chọn tốt nhất khi bạn đang kiểm tra một giá trị so với một danh sách các giá trị khớp chính xác thay vì theo các dải khoảng:
=SWITCH(A2, "Red", "Stop", "Yellow", "Caution", "Green", "Go", "Unknown")
Cấu trúc là =SWITCH(expression, match1, result1, match2, result2, ..., default). Nếu A2 chứa "Red" nó trả về "Stop"; "Yellow" trả về "Caution"; "Green" trả về "Go"; bất kỳ giá trị nào khác sẽ trả về "Unknown".
SWITCH dễ đọc hơn nhiều so với IF lồng nhau khi bạn đang ánh xạ văn bản hoặc mã số cụ thể sang nhãn — một nhu cầu phổ biến trong quản lý dữ liệu nhân sự (HR) khi quy đổi mã bộ phận sang tên bộ phận, hoặc trong báo cáo tài chính khi ánh xạ mã tài khoản sang các danh mục.
Hàm IF trở nên mạnh mẽ hơn nữa khi được kết hợp với các hàm tra cứu và thống kê. Dưới đây là một số mẫu thực tế:
=IF(ISBLANK(B2), "Missing", B2*1.1)
Giúp ngăn ngừa lỗi khi một ô tham chiếu có thể bị để trống — một thói quen tốt khi làm việc với dữ liệu được nhập (import) vào. Nếu bạn thường xuyên phải dọn dẹp các tập dữ liệu đầu vào, việc kết hợp hàm IF với bộ xử lý lỗi chỉ là một trong nhiều kỹ thuật được đề cập đến trong các luồng xử lý chuyển đổi dữ liệu bằng Power Query.
=IFERROR(VLOOKUP(A2, D:E, 2, 0), "Not Found")
Thay vì lồng IF bao bọc ngoài một hàm VLOOKUP, IFERROR sẽ nắm bắt bất kỳ lỗi nào mà hàm tra cứu có thể tạo ra và thay thế nó bằng một thông báo thân thiện. Để tìm hiểu các kỹ thuật tra cứu chuyên sâu hơn, hãy xem hướng dẫn toàn tập về hàm VLOOKUP.
Đôi khi bạn hoàn toàn không cần đặt hàm IF bên trong hàm SUM — các hàm SUMIF và SUMIFS xử lý việc tổng hợp có điều kiện hiệu quả hơn nhiều so với việc bọc hàm SUM trong IF.
Hãy cùng xây dựng một hệ thống đánh giá hiệu suất nhỏ từ con số không. Giả sử bảng tính của bạn có:
Bạn muốn cột D hiển thị xếp hạng "Excellent" (Xuất sắc), "Good" (Tốt), "Needs Improvement" (Cần cải thiện) hoặc "At Risk" (Rủi ro) dựa trên cả hai cột.
Bước 1: Xác định các quy tắc của bạn. Excellent = nhiệm vụ ≥ 50 AND chất lượng ≥ 85. Good = nhiệm vụ ≥ 40 AND chất lượng ≥ 70. Needs Improvement = nhiệm vụ ≥ 30 OR chất lượng ≥ 60. At Risk = mọi trường hợp còn lại.
Bước 2: Viết công thức ở ô D2:
=IF(AND(B2>=50, C2>=85), "Excellent",
IF(AND(B2>=40, C2>=70), "Good",
IF(OR(B2>=30, C2>=60), "Needs Improvement",
"At Risk")))
Bước 3: Sao chép công thức xuống hết cột D cho tất cả các nhân viên.
Bước 4: Áp dụng định dạng có điều kiện (conditional formatting) cho cột D để mỗi mức xếp hạng hiển thị một màu khác nhau — màu xanh lá cây cho Excellent, vàng cho Good, cam cho Needs Improvement, đỏ cho At Risk. Giờ đây, bảng tính của bạn đã trực quan hóa mọi thứ ngay tức thì mà không ai cần phải đọc từng ô một.
Các hàm IF lồng nhau kết hợp cùng nhiều điều kiện AND/OR có thể thực sự khó tự viết từ đầu, đặc biệt khi các quy tắc nghiệp vụ bao gồm từ năm cấp độ trở lên hoặc kết hợp cả điều kiện văn bản lẫn số học. Nếu bạn chỉ cần mô tả yêu cầu của mình bằng ngôn ngữ tự nhiên — ví dụ: "gắn cờ mức độ ưu tiên cao cho đơn hàng nếu giá trị trên 5.000 đô la và khách hàng thuộc hạng cao cấp, mức độ ưu tiên trung bình nếu một trong hai điều kiện là đúng và mức độ ưu tiên thấp cho các trường hợp còn lại" — các công cụ viết công thức bằng AI như GPTExcel có thể tạo ra công thức chính xác ngay lập tức, giúp bạn tiết kiệm thời gian phải mày mò đếm số dấu ngoặc đơn và gỡ lỗi (debug) thứ tự điều kiện.
Excel hỗ trợ tối đa 64 cấp độ hàm IF lồng nhau. Trên thực tế, bất kỳ cấp độ nào vượt quá ba hoặc bốn mức đều trở nên khó đọc và khó bảo trì. Để áp dụng nhiều điều kiện hơn, hãy chuyển sang dùng hàm IFS, SWITCH hoặc cấu trúc lại logic của bạn bằng cách dùng một bảng tra cứu kết hợp với hàm VLOOKUP hoặc INDEX MATCH.
Cả hai đều kiểm tra nhiều điều kiện và trả về các kết quả khác nhau. Điểm khác biệt chính nằm ở cú pháp: hàm IF lồng nhau yêu cầu một dấu ngoặc đóng cho mỗi cấp độ, tạo ra một cấu trúc lồng nhau sâu. Hàm IFS liệt kê tất cả các cặp điều kiện-kết quả thành một chuỗi phẳng, điều này dễ đọc, dễ viết và kiểm tra lại hơn. Hàm IFS có sẵn trên Excel 2019, Excel 2021 và Microsoft 365.
Có. Đối số trả về khi đúng hoặc sai — hoặc cả hai — đều có thể là bất kỳ biểu thức Excel hợp lệ nào, bao gồm cả các hàm khác. Ví dụ: =IF(A2>0, SQRT(A2), 0) trả về căn bậc hai đối với các số dương và số 0 đối với mọi trường hợp còn lại. Điều này giúp hàm IF trở thành một lớp bao bọc linh hoạt nhằm kiểm soát thời điểm các phép tính được thực thi.
Khi bạn bỏ qua hoàn toàn đối số thứ ba — tức là viết =IF(A2>10, "High") — Excel sẽ mặc định trả về giá trị Boolean là FALSE. Để trả về một ô trống, bạn cần phải khai báo rõ ràng một chuỗi văn bản trống làm đối số trả về khi sai: =IF(A2>10, "High", "").
Tìm hiểu cách hàm TEXT trong Excel chuyển đổi số, ngày và giờ thành chuỗi văn bản được định dạng bằng mã định dạng — kèm ví dụ thực tế và cách dùng.
Tìm hiểu cách hoạt động của hàm IF trong Excel, cách lồng nhiều hàm IF và khi nào nên sử dụng các giải pháp thay thế hiện đại như IFS và SWITCH để logic gọn gàng, dễ đọc hơn.
Thành thạo SUMIF và SUMIFS trong Excel để tính tổng dữ liệu dựa trên một hoặc nhiều điều kiện, với cú pháp thực tế, ví dụ minh họa và hướng dẫn từng bước chi tiết.