使Excel IF和语句更高效

时间:2018-06-04 20:11:31

标签: excel if-statement excel-formula nested nested-if

我有一个价目表,根据订购的产品数量和现有客户,我们会向客户收取不同的金额。

我正在尝试使用以下条件的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)))))

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

1 个答案:

答案 0 :(得分:4)

您可以将它分开:

=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 / F2 / F3差异进行了更新。第一次我没有抓到它。我认为以下是可行的方法(上面的选项1和选项3的混合)。

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

我认为最大的收获是分离逻辑以确定您的乘数(1.2 vs 1,具体取决于B1)和确定价格的逻辑(If }声明和E1 / F2 / F3