Những điều cần biết
- Hàm IF dùng để thực hiện kiểm tra logic, tức là xem điều gì có đúng hay không.
- Cú pháp và đối số hàm IF: =IF(logical_test, value_if_true, [value_if_false]).
- Ví dụ: =IF(A2>A3,"Bigger","Smaller").
Bài viết này giải thích cách dùng hàm IF để thực hiện kiểm tra logic trong mọi phiên bản Excel, bao gồm Excel 2019 và Microsoft 365. Một số ví dụ được nêu ra.
Hàm IF là gì?
Hàm IF trong Excel dùng để thực hiện kiểm tra logic. Công thức dùng hàm này cũng gọi là câu lệnh IF hoặc câu lệnh if/then.
Tất cả công thức dùng hàm này có thể có một trong hai kết quả. Cách nó hoạt động, như ta sẽ thấy trong ví dụ dưới, là công thức được thiết lập để kiểm tra xem điều gì có đúng không. Nếu đúng, một việc xảy ra, nhưng nếu sai, việc khác xảy ra.
Hàm IF là một trong vài hàm logic bạn có thể dùng trong Excel. Các hàm khác bao gồm AND, IFERROR, IFS, NOT, và OR.
Cú pháp & Đối số hàm IF
Mọi công thức dùng hàm IF có vài phần:
=IF(logical_test, value_if_true, [value_if_false])
- logical_test: Điều kiện bạn kiểm tra. Bắt buộc.
- value_if_true: Điều gì xảy ra nếu logical_test đúng. Bắt buộc.
- value_if_false: Điều gì xảy ra nếu logical_test sai. Tùy chọn.
Viết câu lệnh IF trong Excel dễ dàng nếu bạn đọc nó hơi khác: nếu phần đầu đúng, thì làm việc này. Nếu phần đầu sai, thì làm việc kia thay vào đó.
Nhớ các quy tắc này:
- Excel trả về FALSE nếu logical_test sai và value_if_false bị bỏ qua.
- Để trả về văn bản làm value_if_true hoặc value_if_false, nó phải trong dấu ngoặc kép, trừ từ TRUE và FALSE.
- Hàm IF không phân biệt chữ hoa/thường.
- Excel 2010 và mới hơn cho phép tối đa 64 câu lệnh IF trong cùng một công thức. Phiên bản cũ giới hạn bảy.
Ví dụ hàm IF
Dưới đây là một số cách khác nhau bạn có thể dùng công thức IF trong Excel:
Viết văn bản nếu câu lệnh đúng
=IF(A2>A3,"Bigger","Smaller")
Đây là ví dụ thực sự cơ bản của câu lệnh IF trong Excel. Kiểm tra xem A2 có lớn hơn A3 không. Nếu có, viết Bigger (Lớn hơn), ngược lại viết Smaller (Nhỏ hơn).
Thực hiện phép tính nếu câu lệnh đúng
=IF(A2>A3,A2-A3)
Câu lệnh IF này viết hơi khác. Thay vì value_if_true là từ, nó trừ giá trị này cho giá trị kia. Vì vậy, nếu A2 thực sự lớn hơn A3, hiệu số sẽ là kết quả. Nếu không đúng, vì ta bỏ qua phần value_if_false, Excel trả về FALSE.
Kiểm tra câu lệnh bằng phép tính
=IF(A2/A3=5,A2/A3,"")
Cách khác viết câu lệnh IF là thực hiện phép tính trong phần logical_test. Điều kiện IF ở đây là A2/A3=5. Nếu đúng, ta làm phép tính A2/A3. Nếu không bằng 5, ta muốn kết quả rỗng, nên dùng dấu ngoặc kép kép.
Kiểm tra xem ngày có phải hôm nay không
=IF(A2=TODAY(),"This is today","")
Các hàm Excel khác có thể dùng trong câu lệnh IF. Trong ví dụ này, ta dùng hàm TODAY để kiểm tra A2 có phải ngày hôm nay không. Nếu có, công thức viết This is today (Đây là hôm nay), ngược lại không viết gì.
Dùng AND với công thức IF
=IF(E2<=TODAY(),"Now","Soon")
=IF(AND(F2="Now",D2>=(B2-C2)),"Yes","No")
Ví dụ này của hàm IF hơi phức tạp hơn. Ý tưởng là xem món hàng chúng ta nợ tiền có quá hạn không, và nếu có, xem số tiền đó có trong ngân sách không để trả nợ. Nếu cả hai câu lệnh đúng, ta thấy ở Cột G có phải đến lúc trả không.
=IF(E2<=TODAY(),"Now","Soon") ở cột Urgency (Khẩn cấp). Nó cho biết món hàng có quá hạn hoặc đến hạn hôm nay bằng cách so sánh ngày đáo hạn với hôm nay. Nếu ngày đáo hạn là hôm nay hoặc quá khứ, Now (Ngay) được viết ở Cột F, ngược lại viết Soon (Sớm).
Câu lệnh IF thứ hai vẫn cấu trúc như câu lệnh IF dù dùng AND trong đó. Phần in đậm ở đây là nơi hàm AND ngồi, và vì nó trong cặp dấu phẩy đầu, nó là thứ ta dùng làm logical_test:
=IF(AND(F2="Now",D2>=(B2-C2)),"Yes","No")
Viết khác để thấy nó giống câu lệnh IF khác:
=IF(kiểm tra hàm AND này, viết Yes nếu đúng, hoặc viết No nếu sai)
Trong hàm AND có hai câu lệnh IF:
- F2="Now" là phần của công thức ở Cột G. Nó kiểm tra xem Now có ở F2 không.
- D2>=(B2-C2) có hai phần: trước làm phép tính B2-C2 xem còn nợ bao nhiêu cho món hàng, rồi kiểm tra ngân sách khả dụng ở D2 xem có tiền trả không.
Vì vậy, nếu chúng ta nợ tiền bây giờ, và có quỹ để trả, ta được báo Yes (Có), đến lúc trả món hàng đó.
Ví dụ câu lệnh IF lồng nhau (Nested IF)
Câu lệnh IF lồng nhau (Nested IF statements) là khi có hơn một câu lệnh IF trong công thức. Thiết lập gần như giống hệt, nhưng thay vì đóng ngoặc ở cuối câu đầu, ta đặt dấu phẩy và viết câu khác.
Tìm hiểu cách lồng hàm AND, OR và IF trong Excel
Hai câu lệnh IF trong một công thức
=IF(B2="F","Class A",IF(B2="M","Class B"))
Ví dụ đầu này dùng để phân loại học sinh theo giới tính, nữ phân lớp A, nam lớp B. Công thức kiểm tra F và M ở B2 rồi viết Class A hoặc Class B tùy câu lệnh nào đúng.
Số dấu ngoặc cần ở cuối công thức với IF lồng nhau bằng số lần IF được viết. Trong ví dụ, IF viết hai lần, nên cần hai dấu ngoặc đóng ở cuối.
Ba câu lệnh IF trong một công thức
=IF(A2=TODAY(),"This is today",IF(A2TODAY(),"Future date")))
Đây là ví dụ công thức với nhiều câu lệnh IF. Nó giống ví dụ TODAY trên nhưng thêm một kiểm tra logic:
- Cặp đầu kiểm tra A2 có phải ngày hôm nay không và trả về This is today nếu có.
- Cặp thứ hai kiểm tra hôm nay có lớn hơn A2 không để xác định A2 là ngày cũ, trả về Old date nếu có.
- Cuối cùng, kiểm tra ngày hôm nay có nhỏ hơn ngày trong A2 không, công thức trả về Future date (Ngày tương lai) nếu có.
Sao chép giá nếu các câu lệnh sai
=IF(C2="Bill","",IF(C2="Food","",B2))
Trong ví dụ cuối cùng của IF lồng nhau, ta cần nhanh chóng xác định tổng số tiền của tất cả mua không rơi vào một danh mục nhất định. Chúng ta tổng hợp tất cả mua không cần thiết, và với danh sách dài, đây là cách tốt nhất. Ta xác định bất kỳ mô tả món hàng nào nói Bill (Hóa đơn) hoặc Food (Đồ ăn) là quan trọng, nên giá, ở B2, cần hiện cho tất cả món khác.
Đây là điều xảy ra:
- C2="Bill","": Nếu C2 nói Bill, để ô trống.
- C2="Food","": Nếu C2 nói Food, để ô trống.
- B2: Nếu một trong hai câu lệnh sai, viết gì ở B2.
Công thức này để lại danh sách giá ta có thể tổng với hàm SUM để nhanh chóng đánh giá bao nhiêu tiền chi cho món không cần.
Cách dễ hơn viết IF lồng nhau
Khi bạn xây dựng càng nhiều vào công thức, nó nhanh trở nên khó quản lý và sửa sau. Một cách làm IF lồng nhau dễ làm việc hơn là ngắt dòng sau mỗi câu lệnh, như sau:
=
IF(A2=TODAY(),"This is today",
IF(A2A2>TODAY(),"Future date")))
Để làm này trong Excel, cần sửa từ thanh công thức:
-
Chọn thanh công thức (formula bar) ở đỉnh Excel.
-
Đặt chuột dưới khoảng văn bản cho đến khi con trỏ đổi thành mũi tên hai chiều, rồi nhấp kéo hộp xuống để có thêm không gian làm việc.
-
Đặt con trỏ sau dấu bằng và nhấn Alt+Enter (Windows) hoặc Ctrl+Option+Enter (Mac). Điều này đặt phần còn lại của công thức trên dòng mới.
-
Lặp lại Bước 3 trước mỗi câu lệnh IF để mọi trường hợp nằm trên dòng riêng.