![Excel 有类似三向开关的东西吗?](https://linux22.com/image/1303665/Excel%20%E6%9C%89%E7%B1%BB%E4%BC%BC%E4%B8%89%E5%90%91%E5%BC%80%E5%85%B3%E7%9A%84%E4%B8%9C%E8%A5%BF%E5%90%97%EF%BC%9F.png)
简而言之,如果想做一个 IF 开关
a) 如果 A < 0.5 ... B = 10。b
) 如果 A >= 0.5 ... B = 15。c
) 如果 A > 1.0 ... B = 20。
那该怎么办呢?
答案1
这将作为 SWITCH 功能发挥作用:-
=CHOOSE(IF(A1<0.5,1,IF(AND(A1>=0.5,A1<=1),2,3)),10,15,20)
但这在内部执行的是嵌套 IF。
使用三路开关的最佳方法如下:-
=IF(A1<0.5,10,IF(AND(A1>=0.5,A1<=1),15,20))
答案2
您可以像这样嵌套“if”表达式:
=IF(A1<0.5,10,IF(AND(A1>=0.5,A1<=1),15,IF(A1>1,20,"Something else")))
(否则我添加 A1<=1 因为 A>1.0 意味着 A 也 >= 0.5)
答案3
如果这是做到这一点最简单的方法。
一种更灵活的计算方法是利用 Excel 对 True=1 的使用。假设值在 A1 中:
=((A1<0.5)*10)+((A1>=0.5)*15)+((A1>1)*20)
这将允许您添加任意数量的条件,并使您摆脱嵌套的 IF。
这是可行的,因为在每个分组中,评估都是一个返回 True 或 False 的逻辑函数,即,如果小于,(A1<0.5)
则返回。当算术函数中使用 True 时,Excel 使用值 1。True
A1
0.5
我上面给出的例子并不完全正确,有些数字对于两个不同的组会生成 True。中间组需要一个AND()
函数来限制,例如:
AND(A1>=0.5,A1<=1)
答案4
最短的解决方案应该是:
=IF(A1<0.5,10,IF(A1<=1,15,20))
由于第一部分,第二部分中的 AND 是不必要的。