Hàm IF – các công thức được kết hợp với nhau và tránh các rắc rối
Áp dụng choExcel cho Microsoft 365 Excel cho Microsoft 365 dành cho máy Mac Excel cho web Excel 2024 Excel 2024 dành cho máy Mac Excel 2021 Excel 2021 cho Mac Excel 2019 Excel 2016 Excel Web App Excel cho Windows Phone 10

Hàm IF cho phép bạn tạo so sánh lô-gic giữa một giá trị và một giá trị dự kiến bằng cách kiểm tra điều kiện, rồi trả về kết quả nếu True hay False.

  • =IF(Điều gì đó là True, thì làm gì, nếu không thì làm gì khác)

Vì vậy, một câu lệnh IF có thể có hai kết quả. Kết quả đầu tiên là nếu so sánh của bạn là True, kết quả thứ hai là nếu so sánh của bạn là False.

Câu lệnh IF cực kỳ mạnh mẽ, đồng thời tạo cơ sở cho nhiều mô hình bảng tính nhưng chúng cũng là nguyên nhân cốt lõi của nhiều sự cố bảng tính. Tốt nhất, bạn nên áp dụng câu lệnh IF cho các điều kiện tối thiểu, chẳng hạn như Nam/Nữ, Có/Không/Có thể nhưng đôi khi, có thể bạn sẽ cần đánh giá các kịch bản phức tạp hơn yêu cầu lồng* 3 hàm IF với nhau.

* "Lồng" đề cập đến cách thực hành kết hợp nhiều hàm với nhau trong một công thức.

Dùng hàm IF, một trong các hàm logic để trả về một giá trị nếu điều kiện đúng và trả về giá trị khác nếu điều kiện sai.

Cú pháp

IF(logical_test, value_if_true, [value_if_false])

Ví dụ:

  • =IF(A2>B2,"Vượt dự toán","OK")

  • =IF(A2=B2,B4-A4,"")

Tên đối số

Mô tả

logical_test   

(bắt buộc)

Điều kiện bạn muốn kiểm tra.

value_if_true   

(bắt buộc)

Giá trị bạn muốn trả về nếu kết quả của logical_test là ĐÚNG.

value_if_false   

(tùy chọn)

Giá trị bạn muốn trả về nếu kết quả của logical_test là SAI.

Ghi chú

Mặc dù Excel sẽ cho phép bạn lồng tối đa 64 hàm IF khác nhau nhưng bạn không nên làm như vậy. Tại sao?

  • Nhiều câu lệnh IF sẽ yêu cầu bạn suy nghĩ rất lâu để xây dựng chính xác và đảm bảo rằng lô-gic của câu lệnh có thể tính toán chính xác qua từng điều kiện cho đến khi kết thúc. Nếu bạn không lồng công thức chính xác 100% thì công thức có thể hoạt động 75% nhưng trả về kết quả không mong muốn 25% thời gian. Rất tiếc, khả năng bạn tìm ra nguyên nhân của 25 % đó là rất nhỏ.

  • Nhiều câu lệnh IF có thể rất khó để duy trì, đặc biệt là khi bạn quay lại một thời gian sau đó và cố gắng tìm hiểu điều mà bạn hoặc tệ hơn là một người khác, đang cố gắng thực hiện.

Nếu bạn thấy mình với một câu lệnh IF mà có vẻ như tiếp tục phát triển mà không có kết thúc trong tầm nhìn, đó là thời gian để đặt xuống chuột và xem lại chiến lược của bạn.

Chúng ta hãy xem cách tạo câu lệnh IF phức tạp lồng nhau bằng nhiều hàm IF và khi nào nên nhận ra rằng đã đến lúc sử dụng một công cụ khác trong kho Excel của bạn.

Ví dụ

Dưới đây là một ví dụ về một câu lệnh IF được lồng tương đối chuẩn để chuyển đổi các điểm kiểm tra của học viên thành điểm theo chữ cái tương đương.

Câu lệnh IF kết hợp phức tạp - Công thức trong E2 là =IF(B2>97,"A+",IF(B2>93,"A",IF(B2>89,"A-",IF(B2>87,"B+",IF(B2>83,"B",IF(B2>79,"B-",IF(B2>77,"C+",IF(B2>73,"C",IF(B2>69,"C-",IF(B2>57,"D+",IF(B2>53,"D",IF(B2>49,"D-","F"))))))))))))
  • =IF(D2>89,"A",IF(D2>79,"B",IF(D2>69,"C",IF(D2>59,"D","F"))))

    Câu lệnh IF được lồng phức tạp này tuân theo lô-gic dễ hiểu:

  1. Nếu Điểm Kiểm tra (trong ô D2) lớn hơn 89 thì học viên nhận điểm A

  2. Nếu Điểm Kiểm tra lớn hơn 79 thì học viên nhận điểm B

  3. Nếu Điểm Kiểm tra lớn hơn 69 thì học viên nhận điểm C

  4. Nếu Điểm Kiểm tra lớn hơn 59 thì học viên nhận điểm D

  5. Các trường hợp khác học viên nhận điểm F

Ví dụ cụ thể này tương đối an toàn vì không có khả năng mối tương quan giữa điểm kiểm tra và điểm theo chữ cái sẽ thay đổi, vì vậy sẽ không yêu cầu bảo trì nhiều. Nhưng đây là một suy nghĩ - điều gì sẽ xảy ra nếu bạn cần phân đoạn các điểm giữa A+, A và A- (và như vậy)? Bây giờ, bạn cần viết lại câu lệnh IF bốn điều kiện của mình thành câu lệnh có 12 điều kiện! Công thức của bạn giờ đây sẽ trông như thế này:

  • =IF(B2>97,"A+",IF(B2>93,"A",IF(B2>89,"A-",IF(B2>87,"B+",IF(B2>83,"B",IF(B2>79,"B-", IF(B2>77,"C+",IF(B2>73,"C",IF(B2>69,"C-",IF(B2>57,"D+",IF(B2>53,"D",IF(B2>49,"D-","F"))))))))))))

Độ phân giải vẫn chính xác về chức năng và sẽ hoạt động như mong đợi, nhưng sẽ mất nhiều thời gian để viết và kiểm tra lâu hơn để đảm bảo rằng tệp thực hiện những gì bạn muốn. Một vấn đề hiển thị khác là bạn đã phải nhập điểm số và điểm theo chữ cái tương đương theo cách thủ công. Tỷ lệ cược mà bạn sẽ vô tình có một lỗi đánh máy là gì? Bây giờ, hãy tưởng tượng bạn đang cố gắng thực hiện điều này 64 lần với các điều kiện phức tạp hơn! Chắc chắn, nó có thể, nhưng bạn có thực sự muốn tự chịu sự nỗ lực này và các lỗi có thể xảy ra mà sẽ thực sự khó phát hiện?

Mẹo: Mọi hàm trong Excel đều yêu cầu dấu ngoặc tròn mở và dấu ngoặc tròn đóng (). Excel sẽ cố gắng giúp bạn tìm ra điểm bắt đầu bằng cách tô màu cho các phần khác nhau của công thức khi bạn chỉnh sửa công thức. Ví dụ: nếu bạn muốn sửa công thức ở trên, khi bạn di chuyển con trỏ qua từng dấu ngoặc đơn kết thúc ")", dấu ngoặc đơn mở tương ứng sẽ chuyển sang cùng màu. Điều này có thể đặc biệt hữu ích trong các công thức phức tạp lồng nhau khi bạn đang cố gắng tìm hiểu xem bạn có đủ dấu ngoặc đơn khớp hay không.

Ví dụ bổ sung

Dưới đây là ví dụ rất phổ biến khi tính toán Tiền hoa hồng Bán hàng dựa theo các mức Doanh thu đạt được.

Công thức trong ô D9 là IF(C9>15000,20%,IF(C9>12500,17.5%,IF(C9>10000,15%,IF(C9>7500,12.5%,IF(C9>5000,10%,0)))))
  • =IF(C9>15000,20%,IF(C9>12500,17.5%,IF(C9>10000,15%,IF(C9>7500,12.5%,IF(C9>5000,10%,0)))))

Công thức này cho biết IF(C9 Lớn Hơn 15.000 thì trả về 20 %, IF(C9 Lớn Hơn 12.500 thì trả về 17,5 %, v.v...

Mặc dù ví dụ này khá giống với ví dụ về Điểm trước đó nhưng công thức này là một ví dụ tuyệt vời về việc duy trì các câu lệnh IF lớn khó khăn đến mức nào – bạn cần phải làm gì nếu tổ chức của bạn quyết định thêm các mức độ bồi thường mới và thậm chí có thể thay đổi các giá trị phần trăm hoặc đô la hiện có? Bạn sẽ phải tự tay làm nhiều việc!

Mẹo: Bạn có thể chèn ngắt dòng vào thanh công thức để dễ đọc các công thức dài hơn. Chỉ cần nhấn ALT+ENTER trước văn bản bạn muốn ngắt sang dòng mới.

Dưới đây là ví dụ về kịch bản tiền hoa hồng với lô-gic không theo thứ tự:

Công thức trong D9 không theo thứ tự có dạng =IF(C9>5000,10%,IF(C9>7500,12.5%,IF(C9>10000,15%,IF(C9>12500,17.5%,IF(C9>15000,20%,0)))))

Bạn có thể thấy có gì không? So sánh thứ tự của các so sánh Doanh thu cho ví dụ trước đó. Đây là cách so sánh nào? Đúng vậy, nó từ dưới lên ($5.000 đến $15.000), không phải ngược lại. Nhưng tại sao đó lại là vấn đề quan trọng? Đây là vấn đề lớn vì công thức không thể vượt qua đánh giá đầu tiên cho bất kỳ giá trị nào lớn hơn $5.000. Giả sử bạn có doanh thu $12.500 – câu lệnh IF sẽ trả về 10% vì câu lệnh lớn hơn $5.000 và sẽ dừng ở đó. Điều này có thể cực kỳ khó khăn vì trong rất nhiều tình huống, các loại lỗi này không được thông báo cho đến khi chúng có tác động tiêu cực. Vì vậy, khi biết rằng có một số bẫy nghiêm trọng với các câu lệnh IF phức tạp lồng nhau, bạn có thể làm gì? Trong hầu hết các trường hợp, bạn có thể sử dụng hàm VLOOKUP thay vì tạo công thức phức tạp bằng hàm IF. Khi sử dụng hàm VLOOKUP, trước tiên, bạn cần tạo bảng tham chiếu sau:

Công thức trong ô D2 là =VLOOKUP(C2,C5:D17,2,TRUE)
  • =VLOOKUP(C2,C5:D17,2,TRUE)

Công thức này cho biết có thể tìm giá trị ở ô C2 trong dải ô C5:C17. Nếu tìm thấy giá trị thì trả về giá trị tương ứng từ cùng một hàng trong cột D.

Công thức trong ô C9 là =VLOOKUP(B9,B2:C6,2,TRUE)
  • =VLOOKUP(B9,B2:C6,2,TRUE)

Tương tự, công thức này tìm giá trị ở ô B9 trong dải ô B2:B22. Nếu tìm thấy giá trị thì trả về giá trị tương ứng từ cùng một hàng trong cột C

Lưu ý: Cả hai hàm VLOOKUP này đều sử dụng tham đối TRUE ở cuối công thức, nghĩa là chúng tôi muốn các hàm này tìm một giá trị tương đối khớp. Nói cách khác, hàm sẽ khớp các giá trị chính xác trong bảng tra cứu cũng như mọi giá trị nằm trong khoảng này. Trong trường hợp này, bạn cần sắp xếp các bảng tra cứu theo thứ tự Tăng dần, từ nhỏ nhất đến lớn nhất.

VLOOKUP được trình bày chi tiết hơn ở đây, nhưng điều này chắc chắn đơn giản hơn nhiều so với câu lệnh IF lồng 12 mức, phức tạp! Có những lợi ích khác ít rõ ràng hơn như sau:

  • Bảng tham chiếu VLOOKUP rất rõ ràng và dễ xem.

  • Có thể dễ dàng cập nhật các giá trị trong bảng và bạn không bao giờ phải chỉnh sửa công thức nếu các điều kiện thay đổi.

  • Nếu bạn không muốn mọi người nhìn thấy hoặc can thiệp vào bảng tham chiếu của mình, chỉ cần đặt bảng tham chiếu vào một trang tính khác.

Bạn có biết?

Hiện có một hàm IFS có thể thay thế nhiều câu lệnh IF lồng nhau bằng một hàm duy nhất. Vì vậy, thay vì ví dụ của chúng tôi về các điểm ban đầu chứa 4 hàm IF lồng nhau:

  • =IF(D2>89,"A",IF(D2>79,"B",IF(D2>69,"C",IF(D2>59,"D","F"))))

Bạn có thể tạo ra công thức đơn giản hơn nhiều chỉ với một hàm IFS duy nhất:

  • =IFS(D2>89,"A",D2>79,"B",D2>69,"C",D2>59,"D",TRUE,"F")

Hàm IFS tuyệt vời vì bạn không cần phải lo lắng về tất cả các câu lệnh IF và dấu ngoặc đơn đó.

Lưu ý: Tính năng này chỉ sẵn có nếu bạn có đăng ký Microsoft 365. Nếu bạn là Microsoft 365người đăng ký, hãy đảm bảo rằng bạn có phiên bản Office mới nhất.Mua hoặc dùng thử Microsoft 365

Bạn cần thêm trợ giúp?

Bạn luôn có thể hỏi chuyên gia trong Cộng đồng kỹ thuật Excel hoặc nhận hỗ trợ trong Cộng đồng.

Chủ đề liên quan

Hàm IFS (Microsoft 365, Excel 2016 trở lên)Hàm COUNTIF sẽ đếm các giá trị dựa trên một tiêu chí duy nhất HàmCOUNTIFS sẽ đếm giá trị dựa trên nhiều tiêu chí HàmSUMIF sẽ tính tổng các giá trị dựa trên một tiêu chí duy nhấtMà SUMIFS hàm sẽ tính tổng các giá trị dựa trên nhiều tiêu chí HÀMAND OR hàm VLOOKUP Tổng quan về các công thức trongExcel Cách tránh công thức bị hỏng Phát hiện các lỗi trong công thức Hàm lô-gicHàm Excel (theo bảng chữ cái)Các hàm Excel (theo danh mục)

Bạn cần thêm trợ giúp?

Bạn muốn xem các tùy chọn khác?

Khám phá các lợi ích của gói đăng ký, xem qua các khóa đào tạo, tìm hiểu cách bảo mật thiết bị của bạn và hơn thế nữa.