繁体   English   中英

Excel公式构造帮助,参数过多

[英]Excel formula construction assistance, too many arguments

税表

我正在尝试为此税表考虑适当的公式。 (参见附图),但我对Excel的Loopy格式不太熟悉。 您能发现我的代码有什么问题吗?

=IF(J2<10000,J2*0.05,IF(J2<30000,(J2-10000)*0.1+500),IF(J2<70000,(J2-30000)*.15+2500),IF(J2<140000,(J2-70000)*.20+8500),IF(J2<250000,(J2-140000)*.25+22500),IF(J2<500000,(J2-250000)*.30+50000),IF(J2>500000,(J2-500000)*.32+125000))

更清晰的格式:

IF(J2<10000,
J2*0.05,
IF(J2<30000,
(J2-10000)*0.1+500),
IF(J2<70000,
(J2-30000)*.15+2500),
IF(J2<140000,
(J2-70000)*.20+8500),
IF(J2<250000,
(J2-140000)*.25+22500),
IF(J2<500000,
(J2-250000)*.30+50000),
IF(J2>500000,
(J2-500000)*.32+125000))

就是说我输入了太多的论点。 恰好有7个IF语句。 有什么办法可以使这项工作吗? 希望不要使用名称或变量,因为我实际上想将此公式原样传输到C#程序中,因此首选这种格式。

再过2个小时,我没有什么好用的Excel来测试,但请看一下您是否关闭了嵌套if公式。 我的印象是您在“ else”论点之前关闭了每个。 您在第一个if中做得正确。 将所有结尾的')'放在末尾。

有时,Excel关于“参数过多”的评论应理解为“过多的括号”。

尝试使用此版本的公式:

=IF(J2<10000,J2*0.05,IF J2<30000,(J2-10000)*0.1+500,IF J2<70000,(J2-30000)*.15+2500,IF J2<140000,(J2-70000)*.20+8500,IF J2<250000,(J2-140000)*.25+22500,IF J2<500000,(J2-250000)*.30+50000,IFJ2>500000,(J2-500000)*.32+125000)

您追求的公式是:

=IF(J2< 10000, J2        *0.05,
 IF(J2< 30000,(J2- 10000)*0.10+   500,
 IF(J2< 70000,(J2- 30000)*0.15+  2500,
 IF(J2<140000,(J2- 70000)*0.20+  8500,
 IF(J2<250000,(J2-140000)*0.25+ 22500,
 IF(J2<500000,(J2-250000)*0.30+ 50000,
              (J2-500000)*0.32+125000))))))

如果您想在VBA中执行此操作,它将更具可读性,可维护性和可扩展性:)这是我的看法:

Public Function TaxDue(TaxableIncome As Double) As Double

    Select Case TaxableIncome
        Case Is < 10000
            TaxDue = TaxableIncome * 0.05
        Case Is < 30000
            TaxDue = TaxableIncome * 0.1 + 500
        Case Is < 70000
            TaxDue = TaxableIncome * 0.15 + 2500
        Case Is < 140000
            TaxDue = TaxableIncome * 0.2 + 8500
        Case Is < 250000
            TaxDue = TaxableIncome * 0.25 + 22500
        Case Is < 500000
            TaxDue = TaxableIncome * 0.3 + 50000
        Case Else
            TaxDue = TaxableIncome * 0.32 + 125000
    End Select

End Function

为此,您必须将其放在要使用公式的文件中的模块中。 在模块中之后,只需在单元格中键入= TaxDue。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM