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

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à một 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 với một IF duy nhất trong một công thức mảng 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 là GIỚI THIỆU.

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 tôi 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á 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 đá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 các 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ư sau:

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.

https://exceljet.net/formula/if-with-boolean-logic