我正在寻找一种方法来告诉Excel如果每个单元格的值等于a或等于b,则计算一定数量的不相交单元格。有没有一种简单的方法可以在不为每个单独的单元格设置嵌套的if语句的情况下执行此操作?谢谢!
答案 0 :(得分:0)
考虑列C:E
中的以下不相交(即不连续)数据,并假设我们要测试每个值=20
或=5
:
+---+---+--+----+---+----+
| | A | B| C | D | E |
+---+---+--+----+---+----+
| 1 | 0 | | 10 | | |
| 2 | 1 | | | | 20 |
| 3 | 1 | | | | |
| 4 | | | | 5 | |
| 5 | | | | | |
| 6 | 2 | | | | |
+---+---+--+----+---+----+
A1
中的公式为=(--(C1=20)+--(C1=5))
。解构此内容后,(C1=20)
会返回布尔值True
或False
。
--
前缀是well known Excel trick,它将布尔值强制转换为整数0 (False)
或1 (True)
。
添加这两个强制布尔值与逻辑OR
语句*具有相同的效果。
总之,这个公式相当于C1=20 OR C1=5
。由于C1=20
为False (0)
且C1=5
为False (0)
,因此结果为0
。
A2
和A3
中的公式类似地构建,但指向列E
和D
。
最后,我们将单词A6
与
=(--(C1=20)+--(C1=5)+--(E2=20)+--(E2=5)+--(D4=20)+--(D4=5))
......看起来很乏味(而且确实如此)。不过,我建议你试验一下IF
函数,特别是嵌套IF
函数,可以用这种方式使用布尔逻辑重新编写的想法。有时,至少,公式更容易编写,意图更容易阅读。
* P.S。乘法等同于逻辑AND
。
PPS:我修改了我的答案,说“双一元减”技巧在某些圈子中是众所周知的,但它非常有用,应该成为每个用户的Excel词典的一部分。