Mục lục
Hướng dẫn giải thích cách sử dụng hàm IF lồng nhau trong Excel để kiểm tra nhiều điều kiện. Bạn cũng sẽ tìm hiểu một vài hàm khác có thể là những lựa chọn thay thế tốt cho việc sử dụng công thức lồng nhau trong Excel.
Bạn thường triển khai logic ra quyết định trong trang tính Excel của mình như thế nào? Trong hầu hết các trường hợp, bạn sẽ sử dụng công thức IF để kiểm tra điều kiện của mình và trả về một giá trị nếu điều kiện được đáp ứng, một giá trị khác nếu điều kiện không được đáp ứng. Để đánh giá nhiều điều kiện và trả về các giá trị khác nhau tùy thuộc vào kết quả, bạn lồng nhiều IF vào nhau.
Mặc dù rất phổ biến nhưng câu lệnh IF lồng nhau không phải là cách duy nhất để kiểm tra nhiều điều kiện trong Excel. Trong hướng dẫn này, bạn sẽ tìm thấy một số lựa chọn thay thế chắc chắn đáng để khám phá.
Câu lệnh IF lồng nhau trong Excel
Đây là công thức IF lồng nhau cổ điển trong Excel ở dạng chung :
IF( điều kiện1, kết quả1, IF( điều kiện2, kết quả2, IF( điều kiện3, result3, result4))))Bạn có thể thấy rằng mỗi hàm IF tiếp theo được nhúng vào đối số value_if_false của hàm trước đó. Mỗi hàm IF được đặt trong tập hợp các dấu ngoặc đơn riêng, nhưng tất cả các dấu ngoặc đơn đóng nằm ở cuối công thức.
Công thức IF lồng nhau chung của chúng tôi đánh giá 3 điều kiện và trả về 4 kết quả khác nhau (kết quả 4 được trả về nếu không ai trong sốsổ làm việc để tải xuống
Câu lệnh If lồng nhau trong Excel - ví dụ (tệp .xlsx)
điều kiện là TRUE). Được dịch sang ngôn ngữ của con người, câu lệnh IF lồng nhau này yêu cầu Excel thực hiện những việc sau:Kiểm tra điều kiện1, nếu ĐÚNG - trả về kết quả1, nếu SAI -kiểm tra điều kiện2 , nếu ĐÚNG - trả về r kết quả2 , nếu SAI -
kiểm tra điều kiện3 , nếu ĐÚNG - trả về kết quả3 , nếu FALSE -
return result4
Ví dụ: hãy tìm hiểu tiền hoa hồng cho một số người bán dựa trên số lượng bán hàng mà họ đã thực hiện:
Hoa hồng | Doanh số bán hàng |
3% | $1 - $50 |
5% | $51 - $100 |
7% | $101 - $150 |
10% | Hơn $150 |
Trong toán học, việc thay đổi thứ tự của các phép cộng không làm thay đổi tổng. Trong Excel, việc thay đổi thứ tự các hàm IF sẽ thay đổi kết quả. Tại sao? Bởi vì công thức IF lồng nhau trả về một giá trị tương ứng với điều kiện ĐÚNG đầu tiên . Do đó, trong các câu lệnh IF lồng nhau của bạn, điều rất quan trọng là phải sắp xếp các điều kiện theo đúng hướng - từ cao xuống thấp hoặc thấp lên cao, tùy thuộc vào logic của công thức. Trong trường hợp của chúng tôi, chúng tôi kiểm tra điều kiện "cao nhất" trước, sau đó là "cao thứ hai", v.v.:
=IF(B2>150, 10%, IF(B2>=101, 7%, IF(B2>=51, 5%, IF(B2>=1, 3%, ""))))
Nếu chúng tôi đặt các điều kiện theo thứ tự ngược lại, từ dưới lên, tất cả các kết quả sẽ sai vì công thức của chúng ta sẽ dừng sau phép thử logic đầu tiên (B2>=1) đối với bất kỳ giá trị nào lớn hơn 1. Giả sử, chúng ta có 100 đô latrong doanh số bán hàng - nó lớn hơn 1, vì vậy công thức sẽ không kiểm tra các điều kiện khác và kết quả trả về là 3%.
Nếu bạn muốn sắp xếp các điều kiện từ thấp đến cao, thì hãy sử dụng "ít hơn " và đánh giá điều kiện "thấp nhất" trước, sau đó là "thấp nhất thứ hai", v.v.:
=IF($B2<1, 0%, IF($B2<51, 3%, IF($B2<101, 5%, IF($B2<=150, 7%, 10%))))
Như bạn thấy, cần phải suy nghĩ khá nhiều để xây dựng logic của một câu lệnh IF lồng nhau một cách chính xác cho đến hết. Và mặc dù Microsoft Excel cho phép lồng tối đa 64 hàm IF trong một công thức, nhưng đó không phải là điều bạn thực sự muốn thực hiện trong trang tính của mình. Vì vậy, nếu bạn (hoặc ai đó) đang nhìn chằm chằm vào công thức IF lồng nhau trong Excel của mình để cố gắng tìm hiểu xem nó thực sự làm gì, thì đã đến lúc xem xét lại chiến lược của bạn và có thể chọn một công cụ khác trong kho vũ khí của bạn.
Để biết thêm thông tin , vui lòng xem câu lệnh IF lồng nhau trong Excel.
NẾU lồng nhau với các điều kiện OR/AND
Trong trường hợp cần đánh giá một vài nhóm điều kiện khác nhau, bạn có thể biểu thị các điều kiện đó bằng cách sử dụng OR cũng như Hàm AND, lồng các hàm bên trong các câu lệnh IF, sau đó lồng các câu lệnh IF vào nhau.
NẾU lồng nhau trong Excel với các câu lệnh OR
Bằng cách sử dụng hàm OR, bạn có thể kiểm tra hai hoặc nhiều các điều kiện khác nhau trong bài kiểm tra logic của từng hàm IF và trả về TRUE nếu bất kỳ (ít nhất một) đối số OR nào đánh giá là TRUE. Để xem nó thực sự hoạt động như thế nào, vui lòng xem xétví dụ sau.
Giả sử bạn có hai cột doanh số, giả sử doanh số tháng 1 ở cột B và doanh số tháng 2 ở cột C. Bạn muốn kiểm tra các số trong cả hai cột và tính hoa hồng dựa trên số cao hơn. Nói cách khác, bạn xây dựng một công thức với logic sau: nếu doanh số tháng 1 hoặc tháng 2 lớn hơn 150 đô la, người bán sẽ nhận được 10% hoa hồng, nếu doanh số tháng 1 hoặc tháng 2 lớn hơn hoặc bằng 101 đô la, người bán sẽ nhận được 7% hoa hồng , v.v.
Để hoàn thành, hãy viết một vài câu lệnh OF như OR(B2>150, C2>150) và lồng chúng vào các bài kiểm tra logic của các hàm IF đã thảo luận ở trên. Kết quả là bạn có công thức sau:
=IF(OR(B2>150, C2>150), 10%, IF(OR(B2>=101, C2>=101),7%, IF(OR(B2>=51, C2>=51), 5%, IF(OR(B2>=1, C2>=1), 3%, ""))))
Và được chỉ định hoa hồng dựa trên doanh số bán hàng cao hơn:
Đối với để biết thêm ví dụ về công thức, vui lòng xem câu lệnh IF OR trong Excel.
NẾU lồng nhau trong Excel với câu lệnh AND
Nếu kiểm tra lô-gic của bạn bao gồm nhiều điều kiện và tất cả các điều kiện đó sẽ cho kết quả là TRUE, hãy biểu thị chúng bằng cách sử dụng hàm AND.
Ví dụ: để chỉ định hoa hồng dựa trên số lượng bán hàng thấp hơn, hãy lấy công thức trên và thay thế OR bằng câu lệnh AND. Nói cách khác, bạn yêu cầu Excel chỉ trả lại 10% nếu doanh số tháng 1 và tháng 2 lớn hơn $150, 7% nếu doanh số tháng 1 và tháng 2 lớn hơn hoặc bằng $101, v.v.
=IF(AND(B2>150, C2>150), 10%, IF(AND(B2>=101, C2>=101), 7%, IF(AND(B2>=51, C2>=51), 5%, IF(AND(B2>=1, C2>=1), 3%, ""))))
Kết quả là, công thức IF lồng nhau của chúng tôi sẽ tính toán hoa hồngdựa trên số thấp hơn trong cột B và C. Nếu một trong hai cột trống, sẽ không có hoa hồng nào vì không có điều kiện AND nào được đáp ứng:
Nếu bạn' muốn trả về 0% thay vì ô trống, hãy thay chuỗi trống (''") trong đối số cuối cùng bằng 0%:
=IF(AND(B2>150, C2>150), 10%, IF(AND(B2>=101, C2>=101), 7%, IF(AND(B2>=51, C2>=51), 5%, IF(AND(B2>=1, C2>=1), 3%, 0%))))
Bạn có thể tìm thêm thông tin tại đây: Excel IF với nhiều điều kiện AND/OR.
Vlookup thay vì IF lồng nhau trong Excel
Khi bạn đang xử lý "tỷ lệ", tức là các dải giá trị số liên tục cùng nhau bao gồm toàn bộ phạm vi, trong hầu hết các trường hợp, bạn có thể sử dụng hàm VLOOKUP thay vì các IF lồng nhau.
Đối với người mới bắt đầu, hãy tạo một bảng tham chiếu như minh họa trong ảnh chụp màn hình bên dưới. Sau đó, tạo công thức Vlookup với đối sánh gần đúng , tức là với đối số range_lookup được đặt thành TRUE.
Giả sử giá trị tra cứu nằm trong B2 và bảng tham chiếu là F2:G5, công thức sẽ như sau :
=VLOOKUP(B2,$F$2:$G$5,2,TRUE)
Xin lưu ý rằng chúng tôi sửa table_array bằng tham chiếu tuyệt đối ($F$2:$G$5) để công thức sao chép chính xác sang các ô khác:
Bằng cách đặt đối số cuối cùng của công thức Vlookup của bạn thành TRUE, bạn cho Excel biết tìm kiếm kết quả khớp gần nhất - nếu không tìm thấy kết quả khớp chính xác, hãy trả về giá trị lớn nhất tiếp theo nhỏ hơn giá trị tra cứu. Kết quả là, công thức của bạn không chỉ khớp với các giá trị chính xác trong bảng tra cứu mà còn với bất kỳ giá trị nàocác giá trị nằm trong khoảng giữa.
Ví dụ: giá trị tra cứu trong B3 là $95. Số này không tồn tại trong bảng tra cứu và Vlookup khớp chính xác sẽ trả về lỗi #N/A trong trường hợp này. Nhưng Vlookup với kết quả khớp gần đúng tiếp tục tìm kiếm cho đến khi tìm thấy giá trị gần nhất nhỏ hơn giá trị tra cứu (trong ví dụ của chúng tôi là $50) và trả về giá trị từ cột thứ hai trong cùng một hàng (là 5%).
Nhưng nếu giá trị tra cứu nhỏ hơn số nhỏ nhất trong bảng tra cứu hoặc ô tra cứu trống thì sao? Trong trường hợp này, công thức Vlookup sẽ trả về lỗi #N/A. Nếu đó không phải là điều bạn thực sự muốn, hãy lồng VLOOKUP bên trong IFERROR và cung cấp giá trị cho đầu ra khi không tìm thấy giá trị tra cứu. Ví dụ:
=IFERROR(VLOOKUP(B2, $F$2:$G$5, 2, TRUE), "Outside range")
Lưu ý quan trọng! Để công thức Vlookup có đối sánh gần đúng hoạt động chính xác, cột đầu tiên trong bảng tra cứu phải được sắp xếp theo thứ tự tăng dần , từ nhỏ nhất đến lớn nhất.
Để biết thêm thông tin, vui lòng xem Đối sánh chính xác VLOOKUP so với đối sánh gần đúng VLOOKUP.
Câu lệnh IFS thay thế cho hàm IF lồng nhau
Trong Excel 2016 và các phiên bản mới hơn, Microsoft đã giới thiệu một hàm đặc biệt để đánh giá nhiều điều kiện - hàm IFS.
Một công thức IFS có thể xử lý tối đa 127 cặp logic_test / value_if_true và phép thử logic đầu tiên đánh giá là TRUE sẽ "thắng":
IFS(logical_test1,value_if_true1, [logic_test2, value_if_true2]...)Theo cú pháp trên, công thức IF lồng nhau của chúng ta có thể được xây dựng lại theo cách này:
=IFS(B2>150, 10%, B2>=101, 7%, B2>=51, 5%, B2>0, 3%)
Xin lưu ý rằng Hàm IFS trả về lỗi #N/A nếu không có điều kiện nào được chỉ định được đáp ứng. Để tránh điều này, bạn có thể thêm một logic_test / value_if_true vào cuối công thức sẽ trả về 0 hoặc chuỗi rỗng ("") hoặc bất kỳ giá trị nào bạn muốn nếu không có giá trị nào các kiểm tra logic trước đó là TRUE:
=IFS(B2>150, 10%, B2>=101, 7%, B2>=51, 5%, B2>0, 3%, TRUE, "")
Kết quả là công thức của chúng tôi sẽ trả về một chuỗi rỗng (ô trống) thay vì lỗi #N/A nếu một ô tương ứng trong cột B là trống hoặc chứa văn bản hoặc số âm.
Lưu ý. Giống như hàm IF lồng nhau, hàm IFS của Excel trả về một giá trị tương ứng với điều kiện đầu tiên có giá trị là TRUE, đó là lý do tại sao thứ tự các kiểm tra logic trong công thức IFS lại quan trọng.
Để biết thêm thông tin, vui lòng xem hàm IFS của Excel thay thế của IF lồng nhau.
CHỌN thay vì công thức IF lồng nhau trong Excel
Một cách khác để kiểm tra nhiều điều kiện trong một công thức duy nhất trong Excel là sử dụng hàm CHOOSE, được thiết kế để trả về một giá trị từ danh sách dựa trên vị trí của giá trị đó.
Được áp dụng cho tập dữ liệu mẫu của chúng tôi, công thức có dạng sau:
=CHOOSE((B2>=1) + (B2>=51) + (B2>=101) + (B2>150), 3%, 5%, 7%, 10%)
Trong đối số đầu tiên ( index_num ), bạn đánh giá tất cả các điều kiện và cộng các kết quả. Đượcrằng TRUE tương đương với 1 và FALSE tương đương với 0, bằng cách này, bạn tính toán vị trí của giá trị cần trả về.
Ví dụ: giá trị trong B2 là $150. Đối với giá trị này, 3 điều kiện đầu tiên là TRUE và điều kiện cuối cùng (B2 > 150) là FALSE. Vì vậy, index_num bằng 3, nghĩa là giá trị thứ 3 được trả về, là 7%.
Mẹo. Nếu không có kiểm tra logic nào là TRUE, thì index_num bằng 0 và công thức trả về lỗi #VALUE! lỗi. Một cách khắc phục dễ dàng là gói CHỌN trong hàm IFERROR như sau:
=IFERROR(CHOOSE((B2>=1) + (B2>=51) + (B2>=101) + (B2>150), 3%, 5%, 7%, 10%), "")
Để biết thêm thông tin, vui lòng xem hàm CHỌN trong Excel với các ví dụ về công thức.
Hàm SWITCH dưới dạng ngắn gọn của hàm IF lồng nhau trong Excel
Trong các tình huống khi bạn đang xử lý một tập hợp cố định các giá trị được xác định trước, không phải tỷ lệ, hàm SWITCH có thể là một giải pháp thay thế nhỏ gọn cho hàm phức tạp các câu lệnh IF lồng nhau:
SWITCH(biểu thức, giá trị1, kết quả1, giá trị2, kết quả2, …, [mặc định])Hàm SWITCH đánh giá biểu thức dựa trên danh sách giá trị và trả về kết quả tương ứng với kết quả khớp đầu tiên được tìm thấy.
Trong trường hợp, bạn muốn tính hoa hồng dựa trên các điểm sau, thay vì số tiền bán hàng, bạn có thể sử dụng công thức nhỏ gọn này phiên bản của công thức IF lồng nhau trong Excel:
=SWITCH(C2, "A", 10%, "B", 7%, "C", 5%, "D", 3%, "")
Hoặc, bạn có thể tạo bảng tham chiếu như minh họa trong ảnh chụp màn hình bên dưới và sử dụng tham chiếu ô thay vì giá trị được mã hóa cứng:
=SWITCH(C2, $F$2, $G$2, $F$3, $G$3, $F$4, $G$4, $F$5, $G$5, "")
Làm ơnlưu ý rằng chúng tôi khóa tất cả các tham chiếu ngoại trừ tham chiếu đầu tiên có ký hiệu $ để ngăn chúng thay đổi khi sao chép công thức sang các ô khác:
Lưu ý. Hàm SWITCH chỉ khả dụng trong Excel 2016 trở lên.
Để biết thêm thông tin, vui lòng xem hàm SWITCH - dạng rút gọn của câu lệnh IF lồng nhau.
Ghép nối nhiều hàm IF trong Excel
Như đã đề cập trong ví dụ trước, hàm SWITCH chỉ được giới thiệu trong Excel 2016. Để xử lý các tác vụ tương tự trong các phiên bản Excel cũ hơn, bạn có thể kết hợp hai hoặc nhiều câu lệnh IF bằng cách sử dụng toán tử Nối (&) hoặc hàm CONCATENATE .
Ví dụ:
=(IF(C2="a", 10%, "") & IF(C2="b", 7%, "") & IF(C2="c", 5%, "") & IF(C2="d", 3%, ""))*1
Hoặc
=CONCATENATE(IF(C2="a", 10%, ""), IF(C2="b", 7%, ""), IF(C2="c", 5%, "") & IF(C2="d", 3%, ""))*1
Tùy bạn nhận thấy, chúng tôi nhân kết quả với 1 trong cả hai công thức. Nó được thực hiện để chuyển đổi một chuỗi được trả về bởi công thức Concatenate thành một số. Nếu đầu ra dự kiến của bạn là văn bản thì không cần thực hiện phép nhân.
Để biết thêm thông tin, vui lòng xem hàm CONCATENATE trong Excel.
Bạn có thể thấy rằng Microsoft Excel cung cấp một số lựa chọn thay thế tốt đến các công thức IF lồng nhau và hy vọng hướng dẫn này đã cung cấp cho bạn một số manh mối về cách tận dụng chúng trong trang tính của bạn. Để xem kỹ hơn các ví dụ được thảo luận trong hướng dẫn này, bạn có thể tải xuống sổ làm việc mẫu của chúng tôi bên dưới. Tôi cảm ơn bạn đã đọc và hy vọng sẽ gặp bạn trên blog của chúng tôi vào tuần tới!