嵌套 IF() 公式时出错

Errors when nesting IF() formulas

我只是整理了一个简单的电子表格,根据几个不同的范围计算欠税。我有一个 'Invoiced Amount' 单元格,它占用年度发票,然后根据以下条件对其应用税率:

如果 'Invoiced Amount' 低于 10, 600 那么欠税 = 0

如果 'Invoiced Amount' 高于 10, 600 但低于 42, 386 那么欠税额 = ((发票金额 - 免税额)/100) * 20

如果 'Invoiced Amount' 等于或大于 42, 386 欠税 = ((42, 386 - 免税额)*20)+((InvoicedAmount - 42, 386)*40)

我可能忽略了一些非常基本的东西,但可以肯定的是 - 免税额为 10、600 - 超过 42、386 的任何东西都按 20% 的税率计算,然后任何收入超过 42 的东西, 386 收取 40% 的费用...

我越打越糊涂。不管怎样,这是我的 excel 公式:

InvoicedTotal = P5

TaxAllowance (10600) ='UK Tax Figures'!C3

TaxAllowanceUpperBand (42386) ='UK Tax Figures'!G5

TaxAllowance Upper Band - Tax Allowance (31784) = H5

UpperTaxAllownace Band (42386.01) = ='UK Tax Figures'!F5


=IF ((P5)<’UK Tax Figures’!C3, 0, IF(P5>=’UK Tax Figures’!C3<'UK Tax Figures'!G5, ((P5-'UK Tax Figures'!C3)/100)*20, IF(P5>='UK Tax Figures'!F5, ((H5/100)*20)+((P5-'UK Tax Figures'!F5)*40))

目前我得到了疯狂的意外值,所以计算显然是非常错误的......但我现在看不到树木的木材,所以如果有人有任何想法我会真的很感激!此刻这里有点疯狂!

将您的公式放入 Online Excel Formula beautifier 我注意到您的公式有几个问题:

=IF ( ( P5 ) < ’UK Tax Figures’!C3 , 0 ,
    IF(
        P5 >= ’UK Tax Figures’!C3 < UKTaxFigures!G5,
        ( ( P5 - UKTaxFigures!C3 ) / 100 ) * 20,
        IF(
            P5 >= UKTaxFigures!F5,
            ( ( H5 / 100 ) * 20 ) + ( ( P5 - UKTaxFigures!F5 ) * 40 )
        )
  • 首先,你缺少两个右括号
  • 此外,您在P5>=’UK Tax Figures’!C3<'UK Tax Figures'!G5中有一个无效的条件,您需要将其更改为AND(P5>=UKTaxFigures!C3;UKTaxFigures!C3<UKTaxFigures!G5)
  • 看看你如何引用你上面的作品sheet,我注意到你似乎有两个不同的 sheet - 一个在 [=53= 中的单词之间有空格] 名字,还有一个没有。我怀疑情况并非如此,因此您可能应该从公式中删除这些空格。
  • 您也不同意是否在您的 sheet 名称周围使用撇号 ()。在单元格中尝试你的公式,Excel 似乎不喜欢它们,所以它们可能也应该这样做。
  • 你最里面的 if 语句似乎少了一个 return 值,如果它是假的话。

稍微猜测一下你想要的公式 return,我最终得到这个公式:

=IF(P5<UKTaxFigures!C3;0;IF(AND(P5>=UKTaxFigures!C3;UKTaxFigures!C3<UKTaxFigures!G5);((P5-UKTaxFigures!C3)/100)*20;IF(P5>=UKTaxFigures!F5;((H5/100)*20)+((P5-UKTaxFigures!F5)*40);0)))

在美化器中看起来像这样:

=IF(
    P5 < UKTaxFigures!C3;
    0;
    IF(
        AND(
            P5 >= UKTaxFigures!C3;
            UKTaxFigures!C3 < UKTaxFigures!G5
        );
        ( ( P5 - UKTaxFigures!C3 ) / 100 ) * 20;
        IF(
            P5 >= UKTaxFigures!F5;
            ( ( H5 / 100 ) * 20 ) + ( ( P5 - UKTaxFigures!F5 ) * 40 );
            0
        )
    )
)

这是否接近您想要的?

最后的建议是,编写这样的公式绝对是一件痛苦的事情 - 相反,您可以尝试一点一点地构建它,将公式的每一部分存储在一个单元格中,看看它们是否有效.然后您可以剪切和粘贴,使它们都适合一个单元格。 IE。如果您在单元格 A1 中存储:

=IF(P5>=UKTaxFigures!F5;((H5/100)*20)+((P5-UKTaxFigures!F5)*40);0)

然后你可以把

=IF(AND(P5>=UKTaxFigures!C3;UKTaxFigures!C3<UKTaxFigures!G5);((P5-UKTaxFigures!C3)/100)*20;A1)

在 A2 和这个

=IF(P5<UKTaxFigures!C3;0;A2)

在A3中。如有必要,您可以选择更远的公式,以使其更具可读性。然后最后你只需从单元格中复制公式,并用它们替换引用。

请注意,我不能 100% 确定我做的一切都是正确的,没有适当的数据,跟踪所有的括号和结果有点困难。但这至少应该给你一个好的起点。