我正在尝试在IF条件内使用AND,OR,MIN,MAX来编写嵌套if条件。但我无法解决以下问题。
我在“付款”列中,如果该笔付款少于2万,则该笔款项应为付款的100%。
如果付款在20k-40k之间,则需要计算付款的80%,但在计算80%之后,结果小于20k,则应写20k。如果结果更多,则应写入结果。
如果付款介于40k-75k之间,则需要计算付款的70%,但在计算70%之后,结果少于40k,则应写40k。如果结果更多,则应写入结果。
如果付款额介于75k-100k之间,则需要计算付款额的60%,但在计算60%之后,结果少于75k,则应写成75k。如果结果更多,则应写入结果。
如果付款额较大,则100k需要计算付款额的50%,但是在计算50%之后,结果少于100k,则应写100k。如果结果更多,则应写入结果。
我尝试使用min函数和AND运算符编写嵌套的if条件以形成一个公式,但是没有任何结果可以准确给出结果。
我尝试过:
=IF(B8<=20000,B8,IF(AND(B8>=20001,B8*80%<20000),20000,B8*80%),IF(AND(B8>=40001,B8*70%<40000),40000,B8*70%),IF(AND(B8>=75001,B8*60%<75000),75000,B8*60%),IF(AND(B8>=100001,B8*50%<100000),100000,B8*50%)
但是它抛出错误called too many arguments
。
这似乎起作用:
=IF(B8 <= 20000,B8,IF(B8 <= 40000,MAX(20000,0.8*B8),IF(B8 <= 75000,MAX(40000,0.7*B8),IF(B8 <= 100000,MAX(75000,0.6*B8),MAX(100000,0.5*B8)))))
我实际上首先是在记事本中这样写的:
if(B8 <= 20000,
B8,
if(B8 <= 40000,
max(20000,0.8*B8),
if(B8 <= 75000,
max(40000,0.7*B8),
if(B8 <= 100000,
max(75000,0.6*B8),
max(100000,0.5*B8)
)
)
)
)
因为那样布置是我保持逻辑正确的唯一方法。
一个关键点是,您仅在知道B8 <= 40000
为假的上下文中测试B8 <= 20000
是否成立,因此无需测试是否也有B8 > 20000
。在那个阶段它是自动的。