我有一个价目表,根据订购的产品数量和现有客户,我们会向客户收取不同的金额。
我正在尝试使用以下条件的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)))))
有没有办法让这个公式变得更短/更有效?
答案 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
)