Excel 中的非布尔运算

Excel 中的非布尔运算

在 Excel 中,如果我有一些形式的布尔运算

{=SUM(IF((A1:A8="Google")*(B1:B8="Stanford")+(C1:C8="Columbia"),1,0))}

我知道这*意味着AND()+OR()在 A 列和 B 列中搜索“Google”和“Stanford”,或者在 C 列中搜索“Columbia”

但是有符号吗NOT()

答案1

*相当于 ,相当于AND()因为 的值为,的值为。 并且,由于函数变为, 反之亦然 ( ↔ ) ,因此一种简单的算术实现方法是。+OR()TRUE1FALSE0NOT()TRUEFALSE10NOT(x)1-x

不幸的是,这只适用于01。如果你使用+OR()并且表达式中有两个(或更多) TRUE 条件组合,你将得到2或更大的值。好消息(你已经知道)是任何非零数字都算作TRUE。坏消息是 是1-2-1它是非零的,因此也是TRUE

另一种解决方案是逻辑表达式x=0,例如,

(((A1:A8="Google")*(B1:B8="Stanford")+(C1:C8="Columbia"))=0)

如果x0,这个逻辑表达式的计算结果为TRUE。如果x除 之外的任何值0,表达式的计算结果为FALSE。因此,x=0函数为。NOT(x)

警告:如果将多个布尔值(TRUE或)与、和组合,它们将转换为整数(数字);但如果您进行测试,最终会得到布尔值。因此,您可以这样写FALSE*+-number=number

=SUM((A1:A8="Google")*(B1:B8="Stanford"))

(不使用IF()),因为是一个数字,但你不能这样做Boolean*Boolean

=SUM(((A1:A8="Google")*(B1:B8="Stanford"))=0)

因为SUM()不适用于布尔值。但你可以使用它

  • 在一个IF()
  • 添加 0(+0),或
  • 乘以 1 ( *1)。

相关内容