Excel公式构造辅助,参数太多
Posted
技术标签:
【中文标题】Excel公式构造辅助,参数太多【英文标题】:Excel formula construction assistance, too many arguments 【发布时间】:2016-12-05 06:11:09 【问题描述】:我正在尝试为此税表考虑正确的公式。 (见附图)但我对excels 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# 程序中,所以这种格式是首选。
【问题讨论】:
请注意,一旦你修复了括号,如果 J2 包含数字 500000,你最里面的IF
语句将返回 FALSE
。
我知道这已经解决了,但是您可以使用 VLOOKUP
将最后一件事设为 FALSE。只需将 A 列的数字设置为起始数字(如 0、10001、30001 等)
【参考方案1】:
有时 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)
【讨论】:
谢谢,在意识到括号分开时不匹配后,我终于弄明白了。猜猜它毕竟不是那么令人困惑!【参考方案2】:另外 2 小时我没有 excel 方便进行测试,但看看你是否关闭了嵌套的 if 公式。 我的印象是您在“其他”参数之前关闭每个。你在第一个 if 中做对了。将所有结束的 ')' 放在最后。
【讨论】:
【参考方案3】:你的公式是:
=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))))))
【讨论】:
【参考方案4】:如果您想在 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。
【讨论】:
以上是关于Excel公式构造辅助,参数太多的主要内容,如果未能解决你的问题,请参考以下文章