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公式构造辅助,参数太多的主要内容,如果未能解决你的问题,请参考以下文章

在上万条excel数据中如何删除单独的数据

excel怎样分类求和

excel怎样用函数公式计算天数

Excel公式错误代码#NUM怎么办

excel计算当月天数的公式,是怎么弄的?

excel函数,如图,满足在8点和11点这段时间内的上班人员的工作时长的和,求大神公式如何写