Excel嵌套,如果条件

问题描述 投票:0回答:1

我正在尝试在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

excel if-statement excel-formula excel-2010
1个回答
0
投票

这似乎起作用:

=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。在那个阶段它是自动的。

© www.soinside.com 2019 - 2024. All rights reserved.