Công thức Excel: Chỉ tính toán nếu không để trống
Công thức Excel: Chỉ tính toán nếu không để trống

Công thức chung
=IF(criteria,formula(),"")
Tóm lược

Để chạy công thức chỉ khi một hoặc nhiều ô không trống, bạn có thể dùng Hàm IF với một tiêu chí logic thích hợp. Trong ví dụ được hiển thị, công thức trong E5 là:

=IF(COUNT(C5:C7)=3,SUM(C5:C7),"")

Vì C7 không có giá trị trong màn hình trên nên công thức không hiển thị kết quả. Trong màn hình bên dưới, C7 chứa một số và tổng được hiển thị:

Công thức tương tự với phép tính

Giải trình

Mục tiêu của ví dụ này là xác minh đầu vào trước khi tính toán kết quả. Điểm mấu chốt cần hiểu là bất kỳ công thức hợp lệ nào có thể được thay thế. Hàm SUM chỉ được dùng làm ví dụ. Logic cũng có thể được điều chỉnh theo nhiều cách để phù hợp với tình huống.

Trong ví dụ được hiển thị, chúng tôi đang sử dụng hàm IF cùng với COUNT hàm. Tiêu chí là một biểu thức dựa trên hàm COUNT, hàm này chỉ đếm số giá trị:

COUNT(C5:C7)=3 // returns TRUE or FALSE

Miễn là phạm vi chứa ba số (nghĩa là cả 3 ô đều không trống) kết quả là TRUE và IF sẽ chạy hàm SUM. Nếu không, kết quả là FALSE và IF trả về chuỗi trống (“”). Vì C7 không có giá trị trong màn hình trên nên công thức không hiển thị kết quả.

Có nhiều cách để kiểm tra các ô trống và một số tùy chọn được giải thích bên dưới.

Với COUNTBLANK

Các Hàm COUNTBLANK đếm các ô trống trong một phạm vi, vì vậy chúng ta có thể viết một công thức nhỏ gọn hơn một chút như sau:

=IF(COUNTBLANK(C5:C7),"",SUM(C5:C7))

Nếu COUNTBLANK trả về bất kỳ số nào ngoại trừ số 0, hàm IF sẽ đánh giá là TRUE và không trả về (“”). Nếu COUNTBLANK trả về 0, IF đánh giá là FALSE và trả về tổng.

Với ISBLANK

Trong ví dụ được hiển thị, tất cả các ô đầu vào đều nằm trong cùng một phạm vi liền kề. Trong trường hợp các ô không cùng nhau, bạn có thể sử dụng công thức như sau:

=IF(OR(ISBLANK(C5),ISBLANK(C6),ISBLANK(C7)),"",SUM(C5:C7))

Ví dụ này có cách tiếp cận theo nghĩa đen với Hàm ISBLANK. Bởi vì chúng tôi muốn kiểm tra cả ba ô cùng một lúc, chúng tôi cần sử dụng ISBLANK ba lần bên trong Hàm HOẶC. Đây là bài kiểm tra logic bên trong IF:

OR(ISBLANK(C5),ISBLANK(C6),ISBLANK(C7)

Khi OR trả về TRUE (ít nhất một ô trống), IF trả về một chuỗi trống (“”). Khi OR trả về FALSE (không có ô nào trống), IF chạy Hàm SUM và trả về kết quả:

SUM(C5:C7)

Với các toán tử logic

Chức năng ISBLANK có thể được thay thế bằng tiêu chuẩn toán tử logic như thế này:

=IF(OR(C5="",C6="",C7=""),"",SUM(C5:C7))

Ngoài ra, chúng ta có thể kết hợp toán tử không bằng () với hàm AND như sau:

=IF(AND(C5<>"",C6<>"",C7<>""),SUM(C5:C7),"")

Lưu ý rằng hàm SUM đã được chuyển đến kết quả TRUE. Nó sẽ chỉ chạy nếu C5 và C6 và C5 không trống rỗng.

Với COUNTA

Cuối cùng, bạn có thể sử dụng Hàm COUNTA để kiểm tra đầu vào số hoặc văn bản:

=IF(COUNTA(C5:C7)=3,SUM(C5:C7),"")

Miễn là phạm vi C5: C5 chứa ba giá trị (số hoặc văn bản), kết quả sẽ là TRUE và hàm SUM sẽ chạy. Điều này không thực sự có ý nghĩa đối với ví dụ được hiển thị (yêu cầu nhập số) nhưng nó có thể được sử dụng trong các trường hợp khác.

https://exceljet.net/formula/only-calculate-if-not-blank