如果函数为多个值

时间:2014-01-13 17:01:03

标签: excel

我正在寻找一种方法来告诉Excel如果每个单元格的值等于a或等于b,则计算一定数量的不相交单元格。有没有一种简单的方法可以在不为每个单独的单元格设置嵌套的if语句的情况下执行此操作?谢谢!

1 个答案:

答案 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)会返回布尔值TrueFalse

--前缀是well known Excel trick,它将布尔值强制转换为整数0 (False)1 (True)

添加这两个强制布尔值与逻辑OR语句*具有相同的效果。

总之,这个公式相当于C1=20 OR C1=5。由于C1=20False (0)C1=5False (0),因此结果为0

A2A3中的公式类似地构建,但指向列ED

最后,我们将单词A6

一起拉出来
=(--(C1=20)+--(C1=5)+--(E2=20)+--(E2=5)+--(D4=20)+--(D4=5))

......看起来很乏味(而且确实如此)。不过,我建议你试验一下IF函数,特别是嵌套IF函数,可以用这种方式使用布尔逻辑重新编写的想法。有时,至少,公式更容易编写,意图更容易阅读。

* P.S。乘法等同于逻辑AND

PPS:我修改了我的答案,说“双一元减”技巧在某些圈子中是众所周知的,但它非常有用,应该成为每个用户的Excel词典的一部分。