首页 > 解决方案 > 让 Excel IF AND 语句更高效

问题描述

我有一个价目表,其中客户将根据他们订购的产品数量以及他们是否是现有客户收取不同的费用。

我正在尝试使用 AND 语句编写具有以下条件的嵌套 IF:

Order 1-10 and TRUE = 3*1.2
Order 1-10 and FALSE = 3
Order 11-20 and TRUE = 2*1.2
Order 11-20 and FALSE = 2
Order 21 or more and TRUE = 1*1.2
Order 21 or more and FALSE = 1

到目前为止,我有一个有效但不够优雅的公式,其中 B1 是订单量,B2 是现有客户,E1/F2/F3 是价格。

=IF(AND(B1<11,B2=TRUE),E1*1.2,IF(AND(B1<11,B2=FALSE),E1,IF(AND(B1<21,B2=TRUE),F1*1.2,IF(AND(B1<21,B2=FALSE),F1,IF(AND(B1>=21,B2=TRUE),G1*1.2,G1)))))

有没有办法让这个公式更短/更有效?

标签: excelif-statementexcel-formulanestednested-if

解决方案


你可以把它分开有点像:

=If(B2, 1.2, 1)*If(AND(B1>=1, B1<=10), 3, If(And(B1>=11,B1<=20), 2, 1))

如果您将其转换为数学,您可以这样做:

=If(B2, 1.2, 1)*ROUND(30/CEILING(B1, 10), 0)

或者:

=(1+B2*0.2)*ROUND(30/CEILING(B1, 10), 0)

不过这有点傻。


更新了E1//差异F2F3我第一次没听懂。我认为以下将是要走的路(上面的选项1和选项3的混合)。

=(1+B2*0.2)*If(B1<=10),E1,If(B1<=20), F2, F3))

我认为最大的收获是将确定乘数的逻辑(1.21取决于B1)和确定价格的逻辑(您的If声明和E1// )F2分开F3


推荐阅读