Courses
Các câu lệnh IF() lồng nhau có thể xử lý nhiều điều kiện trong một công thức. Tôi đã dùng chúng cho mọi việc từ phân tích báo cáo bán hàng đến phân loại dữ liệu khách hàng và thậm chí tạo bảng điều khiển. Thay vì dùng nhiều công thức hoặc tạo thêm cột, bạn có thể tạo một công thức hiệu quả làm được tất cả.
Nhưng khi mới bắt đầu, những công thức nâng cao này khá khó hiểu. Nếu bạn cũng vậy, tôi rất khuyến nghị bắt đầu với khóa Phân tích Dữ liệu trong Excel hoặc lộ trình kỹ năng Kiến thức Cơ bản về Excel. Chúng sẽ giúp bạn xây dựng nền tảng vững chắc cho các kỹ thuật nâng cao như IF() lồng nhau.
IF() lồng nhau trong Excel là gì?
Chúng ta dùng một câu lệnh IF() đơn để kiểm tra một điều kiện. Nhưng khi cần kiểm tra nhiều hơn một điều kiện, bạn có thể kết hợp nhiều câu lệnh IF() — điều này tạo thành một IF() lồng nhau. Cách này cho phép bạn chạy nhiều phép thử logic nối tiếp và nhận các kết quả khác nhau cho từng phép thử.
Cú pháp cơ bản như sau:
=IF(condition1, value_if_true, IF(condition2, value_if_true, value_if_false))
Bạn có thể dùng IF() lồng nhau để xử lý logic ra quyết định phức tạp tại một chỗ. Ví dụ, giả sử bạn đang tính điểm xếp loại dựa trên các khoảng điểm. Với IF() lồng nhau, bạn có thể viết công thức như sau:
=IF(A1>=90, "A", IF(A1>=80, "B", IF(A1>=70, "C", "F")))
Công thức này kiểm tra liệu điểm trong ô A1 có lớn hơn hoặc bằng 90, 80, hoặc 70 hay không và gán một mức xếp loại tương ứng.
Khi nào nên dùng IF() lồng nhau trong Excel
Bạn có thể dùng IF() lồng nhau để kiểm tra từng điều kiện theo thứ tự và trả về giá trị tương ứng nếu điều kiện được đáp ứng, hoặc chuyển sang điều kiện tiếp theo nếu không. Tôi sẽ minh họa cách hoạt động với vài ví dụ.
Ví dụ 1: Phân loại dữ liệu với IF() lồng nhau
Giả sử tôi muốn gán đợt (batch) cho từng nhân viên theo số năm làm việc tại công ty.
| Số năm làm việc | Đợt |
|---|---|
| ≥ 10 năm | Platinum |
| 5–9 năm | Gold |
| < 5 năm | Silver |
Đây là công thức tôi sẽ dùng:
=IF(C2>=10, "Platinum", IF(C2>=5, "Gold", "Silver"))
Giờ hãy hiểu cách nó hoạt động:
-
IF(C2>=10, "Platinum", ...)kiểm tra xem giá trị trong ô C2 có lớn hơn hoặc bằng 10 hay không. Nếu có, nó trả về Platinum. Nếu không, nó chuyển đến điều kiện tiếp theo. -
Sau đó,
IF(C2>=5, "Gold", "Silver")kiểm tra xem giá trị trong C2 có lớn hơn hoặc bằng 5 hay không. Nếu có, nó trả về Gold. -
Nếu không điều kiện nào được đáp ứng, mặc định sẽ là Silver.

Áp dụng hàm IF() lồng nhau. Ảnh: Tác giả.
Các câu lệnh IF() lồng nhau rất hữu ích trong những tình huống như thế này khi bạn cần phân loại hoặc nhóm dữ liệu nhanh chóng. Nhưng đó chỉ là một cách sử dụng. Bạn cũng có thể dùng IF() lồng nhau cho xác thực dữ liệu, như kiểm tra xem một mục có nằm trong một khoảng cụ thể hay không, hoặc cho định dạng có điều kiện, chẳng hạn tô sáng các hàng đáp ứng tiêu chí nhất định.
Ví dụ 2: Xác thực dữ liệu với IF() lồng nhau
Giả sử tôi muốn các giá trị trong Cột A nằm trong khoảng 10 đến 50. Tôi có thể thiết lập xác thực dữ liệu để áp dụng quy tắc này. Cách làm như sau:
-
Chọn phạm vi cần xác thực, chẳng hạn
A1:A10. -
Vào thẻ Data và bấm Data Validation.
-
Trong hộp thoại Data Validation, chọn Custom từ danh sách thả xuống Allow.
-
Nhập công thức sau vào trường Source:
=IF(A1>=10, IF(A1<=50, TRUE, FALSE), FALSE)
Công thức này đảm bảo giá trị trong A1 nằm trong khoảng 10 đến 50. Để thân thiện hơn với người dùng, bạn có thể thêm thông báo lỗi. Vào thẻ Error Alert và đặt thông điệp như: "Giá trị phải nằm trong khoảng 10 đến 50."

Dùng IF() lồng nhau để xác thực dữ liệu. Ảnh: Tác giả.
Giờ đây, nếu bạn nhập một giá trị ngoài khoảng, thông báo lỗi sẽ hiện lên để ngăn mục nhập không hợp lệ và giữ dữ liệu nhất quán.

Đã xảy ra lỗi. Ảnh: Tác giả.
Ví dụ 3: Định dạng có điều kiện với IF() lồng nhau
Hãy tiến thêm một bước. Giờ tôi muốn tô sáng các hàng có giá trị trong Cột B nằm trong khoảng 10 đến 50. Cách thực hiện:
-
Chọn phạm vi bạn muốn định dạng, chẳng hạn
B1:B10. -
Vào Home > Conditional Formatting > New Rule.
-
Chọn Use a formula to determine which cells to format và nhập công thức:
=IF($B1>=10, IF($B1<=50, TRUE, FALSE), FALSE)
4. Bấm Format và chọn màu tô. Tiếp theo bấm OK để áp dụng quy tắc.

Dùng IF() lồng nhau cho định dạng có điều kiện. Ảnh: Tác giả.
Giờ bạn có thể thấy tất cả các hàng đáp ứng tiêu chí đều được tô sáng:

Định dạng có điều kiện với IF() lồng nhau. Ảnh: Tác giả.
Kết hợp IF() lồng nhau với các hàm Excel khác
Bản thân các hàm IF() lồng nhau đã rất linh hoạt, nhưng khi bạn kết hợp với các hàm Excel khác, chúng còn hữu ích hơn nữa. Tôi sẽ cho bạn xem qua vài ví dụ.
IF() với VLOOKUP()
Khi bạn kết hợp VLOOKUP() với IF(), bạn có thể truy xuất và xử lý dữ liệu có điều kiện dựa trên tiêu chí cụ thể. Ví dụ, bạn có một bảng giá thay đổi theo khu vực. Nếu khu vực là North, bạn muốn áp dụng giảm giá 10% — còn không thì hiển thị giá tiêu chuẩn.
Để làm điều này, dùng công thức sau:
=IF(C2="North",VLOOKUP(B2,B2:D7,3,FALSE)*0.9,VLOOKUP(B2,B2:D7,3,FALSE))
Trong công thức trên, hàm IF() kiểm tra xem khu vực trong C2 có phải là North hay không. Nếu đúng, giá được truy xuất bởi VLOOKUP() sẽ nhân với 0.9 để áp dụng giảm giá 10%. Nếu không, VLOOKUP() truy xuất giá tiêu chuẩn.

Kết hợp IF() với VLOOKUP(). Ảnh: Tác giả.
IF() với SUMIF()
Hàm SUMIF() cộng các giá trị dựa trên tiêu chí nhất định. Khi kết hợp với IF(), bạn có thể phân tích dữ liệu tốt hơn bằng cách cộng các con số đáp ứng điều kiện cụ thể. Ví dụ, nếu tôi muốn tính tổng doanh số cho khu vực North, tôi sẽ dùng công thức sau:
=IF(B2="North",(SUMIF(B2:C10,B2,C2:C10)),"")
Trong công thức trên, hàm IF() kiểm tra xem khu vực trong B2 có phải là North hay không. Nếu TRUE, SUMIF() sẽ cộng tất cả giá trị trong cột C khớp với North. Nếu FALSE, nó trả về chuỗi rỗng.

Kết hợp IF() với SUMIF(). Ảnh: Tác giả.
Những điều tôi luôn kiểm tra khi kết hợp công thức
Khi mới bắt đầu kết hợp nhiều hàm, tôi gặp không ít rắc rối. Tôi viết những công thức phức tạp rồi chúng hỏng chỉ vì một lỗi nhỏ. Đây là vài bài học tôi rút ra sau nhiều lần vấp phải:
-
Theo dõi dấu ngoặc: Đây là nơi tôi sai nhiều nhất. Tôi bỏ sót dấu ngoặc đóng và mất rất nhiều thời gian để hiểu vì sao công thức không chạy. Giờ tôi luôn kiểm tra kỹ mỗi dấu ngoặc mở đều có dấu ngoặc đóng tương ứng. Tiết kiệm cho tôi rất nhiều thời gian.
-
Xử lý lỗi: Nếu bạn từng thấy công thức trả về lỗi xấu xí vì thiếu một giá trị, bạn sẽ hiểu nó khó chịu thế nào. Giờ tôi luôn dùng
IFERROR()để bắt các vấn đề đó và thay thế bằng thông điệp hữu ích hơn, như một lời nhắc tự định nghĩa. -
Dùng phạm vi được đặt tên: Trước khi đặt tên phạm vi, tôi hay mất dấu phạm vi nào đang tham chiếu trong các công thức dài. Sau đó, tôi bắt đầu đặt tên rõ ràng để công thức dễ đọc hơn và giảm khả năng sai tham chiếu.
Các lựa chọn thay thế IF() lồng nhau
Để đầy đủ, hãy xem một số lựa chọn khác.
Hàm IFS()
Mặc dù Excel cho phép tối đa 64 hàm IF() lồng nhau, thực tế mà nói — xếp chồng từng ấy điều kiện sẽ tạo ra các công thức dễ lỗi mà chẳng ai muốn phải gỡ rối. Nếu bạn dùng Excel 2016 trở lên, bạn có thể dùng hàm IFS(). Đây là lựa chọn gọn gàng hơn để xử lý nhiều điều kiện mà không cần lồng nhau.
Cú pháp như sau:
=IFS(logical_test1, value_if_true1, [logical_test2, value_if_true2])
Tôi sẽ minh họa cách hoạt động. Giả sử tôi cần tính thuế suất dựa trên lương nhân viên nên tôi sẽ áp dụng công thức sau.
=IFS(C2<=30000, "10%", C2<=60000, "20%", C2<=100000, "30%", C2>100000, "40%")
Nếu mức lương trong C2 là $30.000 hoặc thấp hơn, trả về 10%. Nếu nằm trong khoảng $30.001 đến $60.000, trả về 20%. Nếu trong khoảng $60.001 đến $100.000, trả về 30%. Bất kỳ mức nào trên $100.000 sẽ trả về 40%.
Tương tự hàm IF(), thứ tự điều kiện rất quan trọng. Excel sẽ dừng đánh giá ngay khi gặp điều kiện đầu tiên là TRUE. Vì vậy, nếu không có điều kiện nào khớp, bạn sẽ nhận lỗi. Để tránh điều đó, bạn có thể thêm một điều kiện mặc định ở cuối như sau:
=IFS(C2<=30000, "10%", C2<=60000, "20%", C2<=100000, "30%", C2>100000, "40%", TRUE, "No Tax")
Giờ Excel sẽ trả về No Tax nếu không điều kiện lương nào được đáp ứng thay vì ném ra lỗi #N/A .

Sử dụng hàm IFS(). Ảnh: Tác giả.
IF() kết hợp IF() bằng &
Một lựa chọn khác, bạn có thể kết hợp IF() với các hàm như & hoặc CONCATENATE(). Đây là ví dụ nơi tôi hiển thị ưu đãi giảm giá cho từng khu vực:
=(IF(C2="North", 10%, "") & IF(C2="South",15%, "") & IF(C2="East", 5%, "") & IF(C2="West", 20%, ""))*1
Trong công thức trên, mỗi câu lệnh IF() kiểm tra khu vực và nối thêm phần trăm giảm giá dạng văn bản. *1 ở cuối chuyển kết quả thành số. Nếu bạn muốn kết quả dạng văn bản, có thể bỏ qua phần này.

Nối nhiều hàm IF(). Ảnh: Tác giả.
Các hàm CHOOSE() hoặc SWITCH()
Nếu bạn đang tìm các lựa chọn khác, CHOOSE() và SWITCH() rất đáng để khám phá. Chúng phù hợp cho các tình huống đơn giản khi bạn cần chọn từ các tùy chọn được xác định trước hoặc khớp một giá trị duy nhất với nhiều kết quả. Hãy xem khóa Phân tích Dữ liệu trong Excel của DataCamp để thực hành nhiều với đa dạng hàm.
Mẹo khắc phục sự cố cho IF() lồng nhau
Khi mới dùng các công thức IF() lồng nhau, tôi hay gặp rất nhiều lỗi. Chúng có vẻ như không thể giải quyết. Tuy nhiên, theo thời gian và qua sai sót, tôi đã học được những bài học ước gì biết sớm hơn. Dưới đây là một số:
-
Nhầm lẫn kiểu dữ liệu: Trộn số và văn bản trong so sánh có thể tạo ra kết quả bất ngờ. Nếu bạn đang so sánh văn bản, hãy đảm bảo nó được định dạng là văn bản. Số cũng vậy.
-
Chạm giới hạn: Excel giới hạn
IF()lồng nhau ở 64 cấp. Nếu công thức của bạn ngừng hoạt động, hãy kiểm tra xem bạn có chạm giới hạn chưa. Lúc đó, thường là lúc nên nghĩ lại cách tiếp cận hoặc chuyển sang hàm khác nhưIFS()hoặcSWITCH().
Nếu công thức không hoạt động như mong đợi, bạn có thể làm như sau:
- Chia nhỏ vấn đề: Đừng cố gắng gỡ rối một công thức khổng lồ trong một lần. Hãy chia thành các phần nhỏ và kiểm tra từng phần. Điều này giúp bạn xác định chính xác chỗ sai.
- Dùng công cụ kiểm tra công thức của Excel: Những công cụ này rất hữu ích khi gỡ lỗi. Dùng Evaluate Formula để bước qua công thức từng phần, hoặc Trace Precedents/Dependents để xem các ô liên kết với nhau thế nào.
- Kiểm tra định dạng dữ liệu ô: Đôi khi vấn đề chỉ là định dạng. Ví dụ, nếu một ô chứa văn bản nhưng trông giống số, công thức có thể không hoạt động như mong đợi. Hãy kiểm tra lại và điều chỉnh định dạng nếu cần.
Câu hỏi thử thách
Đây là một thử thách đơn giản để áp dụng những gì bạn đã học. Giả sử bạn đang tính tiền thưởng cho nhân viên dựa trên hiệu suất và số năm làm việc. Bạn muốn trao:
- Tiền thưởng 10% nếu hiệu suất Excellent và số năm làm việc trên 5.
- Tiền thưởng 5% nếu hiệu suất Good và số năm làm việc trên 3.
- Ngược lại thì không có thưởng.
Bạn có thể viết công thức như sau:
=IF(B2="Excellent", IF(C2>5, D2*10%, "No Bonus"), IF(B2="Good", IF(C2>3, D2*5%, "No Bonus"), "No Bonus"))
Hãy thử và xem bạn có thể điều chỉnh cho tình huống của mình không.
Lời kết
Khi tôi bắt đầu dùng các câu lệnh IF() lồng nhau, tôi ngạc nhiên vì lượng thời gian tiết kiệm được và số khả năng mới mở ra. Nếu bạn đã theo dõi đến đây, hẳn bạn cũng thấy tiềm năng tương tự.
Chìa khóa để thành thạo IF() lồng nhau thực sự là thực hành. Bạn càng thử nghiệm và áp dụng các kỹ thuật này trong dự án của mình, chúng sẽ càng trở thành phản xạ tự nhiên. Nếu bạn sẵn sàng nâng cao kỹ năng hơn nữa, tôi rất khuyến nghị khóa Lập mô hình Tài chính trong Excel hoặc lộ trình kỹ năng Phân tích Dữ liệu với Excel Power Tools trên DataCamp. Chúng sẽ giúp bạn thu hẹp khoảng cách giữa biết công thức và sử dụng Excel như một công cụ kinh doanh thực thụ.
Excel có rất nhiều điều để khám phá và IF() lồng nhau chỉ là một phần. Khi bạn bắt đầu dùng các công thức này một cách sáng tạo, bạn sẽ thấy Excel hữu ích đến mức nào.
Tôi là một chiến lược gia nội dung, yêu thích việc đơn giản hóa các chủ đề phức tạp. Tôi đã giúp các công ty như Splunk, Hackernoon và Tiiny Host tạo nội dung hấp dẫn và giàu thông tin cho khán giả của họ.
Câu hỏi thường gặp về IF() lồng nhau
IF() lồng nhau trong Excel là gì?
Một câu lệnh if lồng nhau trong Excel là một công thức cho phép đánh giá nhiều điều kiện trong một câu lệnh duy nhất, cung cấp các kết quả khác nhau dựa trên logic áp dụng.
Làm thế nào để viết một câu lệnh IF() lồng nhau trong Excel?
Để viết một câu lệnh if lồng nhau, hãy bắt đầu với hàm IF ban đầu, sau đó chèn thêm các hàm IF trong đối số TRUE hoặc FALSE để đánh giá các điều kiện tiếp theo.
Khi nào tôi nên sử dụng các câu lệnh IF() lồng nhau?
Hãy dùng các câu lệnh if lồng nhau khi xử lý các tác vụ ra quyết định phức tạp cần đánh giá nhiều điều kiện và trả về kết quả khác nhau dựa trên các điều kiện đó.
Các câu lệnh IF() lồng nhau có thể kết hợp với các hàm Excel khác không?
Có, các câu lệnh if lồng nhau có thể kết hợp với các hàm khác như VLOOKUP hoặc SUMIF để tăng chức năng và cung cấp phân tích dữ liệu toàn diện hơn.
Một số cạm bẫy thường gặp khi dùng các câu lệnh IF() lồng nhau là gì?
Những sai sót thường gặp gồm tạo các công thức quá phức tạp, khó đọc và khó gỡ lỗi. Điều quan trọng là duy trì sự rõ ràng và mạch lạc khi dùng các câu lệnh if lồng nhau.
Excel có giới hạn số lượng hàm IF() lồng nhau không?
Có. Trong các phiên bản cũ (Excel 2003 trở về trước), bạn có thể lồng tối đa 7 cấp hàm IF(). Bắt đầu từ Excel 2007, giới hạn này tăng lên 64 cấp IF() lồng nhau trong một công thức.
Vì sao Excel lại có giới hạn mức lồng nhau?
Giới hạn này tồn tại để đảm bảo hiệu năng và ngăn chặn các công thức quá phức tạp, khó quản lý, khó gỡ lỗi và khó tính toán.
