Một hàm Excel tôi thường dùng trong công thức là hàm IF. Hàm IF kiểm tra điều kiện logic và tạo hai kết quả khác nhau tùy điều kiện trả về TRUE (ĐÚNG) hay FALSE (SAI).
Dùng bảng bán điện thoại dưới làm ví dụ. Tải file ví dụ ở đây.
Hàm IF Với Điều Kiện Đơn (Single Condition)
Xét tình huống tính Commission Fee (Phí hoa hồng) mỗi hàng bán, tùy nơi bán (Cột D). Nếu bán ở USA, Commission Fee 10%, ngược lại địa điểm khác Commission Fee 5%.
Công thức đầu nhập vào Ô F2 như sau:
=IF(D2="USA", E2*10%, E2*5%)
Phân tích công thức:
- =IF( — Dấu "=" báo hiệu bắt đầu công thức ô và IF là hàm Excel dùng.
- D2="USA" — Kiểm tra logic thực hiện (ví dụ: dữ liệu cột D2 là USA).
- E2*10% — Kết quả trả về nếu kiểm tra logic ban đầu TRUE (giá trị cột D2 là USA).
- E2*5% — Kết quả trả về nếu kiểm tra logic ban đầu FALSE (giá trị cột D2 KHÔNG phải USA).
- ) — Dấu ngoặc đóng kết thúc công thức.
Sau sao chép công thức từ Ô F2 xuống các hàng còn lại cột F và nó tính Commission Fee mỗi dòng, 10% hoặc 5% tùy kiểm tra IF trả TRUE hoặc FALSE mỗi hàng.
Hàm IF Với Nhiều Điều Kiện (Multiple Conditions)
Điều gì nếu quy tắc phức tạp hơn cần kiểm tra nhiều điều kiện logic với kết quả khác nhau mỗi điều kiện?
Excel có câu trả lời! Kết hợp nhiều hàm IF trong cùng ô, gọi là Nested IF (IF lồng nhau).
Xét tình huống tương tự Commissions khác nhau mỗi Sales Location (Địa điểm bán):
- USA 10%
- Australia 5%
- Singapore 2%
Trong Ô F2 (sau sao chép cho các hàng cùng cột F), nhập công thức:
=IF(D2="USA",E2*10%,IF(D2="Australia",E2*5%,E2*2%))
Phân tích công thức:
- =IF( — Bắt đầu công thức dùng IF
- D2="USA" — Kiểm tra logic đầu (dữ liệu cột D2 là USA).
- E2*10% — Kết quả trả về nếu kiểm tra đầu TRUE (giá trị cột D2 là USA).
- IF(D2="Australia",E2*5%,E2*2%) — IF Excel thứ hai đánh giá nếu kiểm tra đầu FALSE (giá trị cột D2 KHÔNG phải USA). Cú pháp tương tự "Hàm IF Với Điều Kiện Đơn" thảo luận trước: nếu ô D2 là Australia, trả E2*5%. Ngược lại, không phải Australia, trả E2*2%.
- ) — Dấu ngoặc đóng kết thúc hàm IF đầu.
Vì Excel đánh giá công thức trái sang phải, khi kiểm tra logic thỏa mãn (ví dụ D2="USA"), hàm dừng và trả kết quả, bỏ qua kiểm tra tiếp theo (ví dụ D2="Australia").
Vì vậy nếu kiểm tra đầu FALSE (địa điểm không phải USA), tiếp tục đánh giá kiểm tra thứ hai. Nếu kiểm tra hai FALSE (không phải Australia), không cần kiểm tra thêm vì giá trị duy nhất ô D2 là Singapore nên trả E2*2%.
Nếu thích rõ ràng, thêm kiểm tra thứ ba IF(D2="Singapore", "giá trị TRUE", "giá trị FALSE"). Công thức mở rộng đầy đủ:
=IF(D2="USA",E2*10%,IF(D2="Australia",E2*5%,IF(D2="Singapore",E2*2%)))
Như nói trước, trên trả kết quả giống công thức ban đầu.
=IF(D2="USA",E2*10%,IF(D2="Australia",E2*5%,E2*2%))
Mẹo Nhanh
- Mỗi hàm IF( đơn lẻ cần ngoặc tròn mở và đóng. Khi có ba hàm IF như ví dụ, công thức cần ba ngoặc đóng ")))", mỗi cái kết thúc IF( mở tương ứng.
- Nếu không chỉ định kết quả thứ hai kiểm tra logic (khi FALSE), giá trị mặc định Excel gán là văn bản "FALSE". Công thức =IF(D2="USA",E2*10%) trả văn bản "FALSE" nếu D2 không phải "USA".
- Nếu có vài kiểm tra logic khác nhau mỗi cái kết quả riêng, kết hợp/lồng hàm IF nhiều lần, một sau một, giống ví dụ trên.