Công thức Excel: IF với logic boolean -

Mục lục

Công thức chung

= IF(criteria1*criteria2*criteria3,result)

Tóm lược

Trong ví dụ được hiển thị, công thức trong F8 là:

(=SUM(IF((color="red")*(region="East")*(quantity>7),quantity)))

Lưu ý: đây là công thức mảng và phải được nhập bằng control + shift + enter.

Giải trình

Lưu ý: Ví dụ này trình bày cách thay thế một công thức IF lồng nhau bằng một IF duy nhất trong một công thức mảng bằng cách sử dụng logic boolean. Kỹ thuật này có thể được sử dụng để giảm độ phức tạp trong các công thức phức tạp. Tuy nhiên, ví dụ chỉ mang tính chất minh họa. Vấn đề cụ thể này có thể được giải quyết dễ dàng với SUMIFS hoặc SUMPRODUCT.

Các công thức trong F7 và F8 trả về cùng một kết quả, nhưng có các cách tiếp cận khác nhau. Trong ô F7, chúng ta có công thức sau, sử dụng cách tiếp cận IF lồng nhau:

(=SUM(IF(color="red",IF(region="east",IF(quantity>7,quantity)))))

Đây là cách Excel đánh giá các IF bên trong SUM:

=IF((TRUE;FALSE;FALSE;TRUE;FALSE;FALSE;TRUE;FALSE;TRUE), IF((TRUE;FALSE;TRUE;FALSE;TRUE;FALSE;TRUE;FALSE;TRUE), IF((FALSE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE),quantity)))

Về bản chất, mỗi IF "lọc" các giá trị thành IF tiếp theo và chỉ những đại lượng mà cả ba phép thử logic trả về TRUE mới "tồn tại" hoạt động. Các đại lượng khác trở thành FALSE và được đánh giá bởi SUM là không. Kết quả cuối cùng bên trong SUM là một mảng các giá trị như sau:

=SUM((FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;8;FALSE;10))

Các giá trị FALSE được đánh giá bằng 0 và hàm SUM trả về kết quả cuối cùng là 18.

Trong F8, chúng ta có công thức này, sử dụng một IF đơn lẻ và logic boolean:

=SUM(IF((color="red")*(region="East")*(quantity>7),quantity))

Mỗi biểu thức logic trả về một mảng giá trị TRUE và FALSE. Khi các mảng này được nhân với nhau, phép toán sẽ ép các giá trị thành một và các số không trong một mảng như thế này:

IF((0;0;0;0;0;0;1;0;1),quantity)

Mảng 1 và 0 lọc ra dữ liệu không liên quan và cùng một kết quả được gửi đến SUM:

=SUM((FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;8;FALSE;10))

Như trước đây, hàm SUM trả về kết quả cuối cùng là 18.

thú vị bài viết...