嵌套IF()公式时的错误

时间:2015-06-04 11:37:36

标签: excel formula nested

我只是整理了一个简单的电子表格,根据几个不同的频段计算欠税。我有一个“发票金额”单元格,它接受年度发票,然后根据以下条件对其应用税率:

如果'已开票金额'低于10,600则税务欠款= 0

如果'已开票金额'超过10,600但低于42,则为386,然后是欠税=((已开票金额 - 免税额)/ 100)* 20

如果'开票金额'等于或大于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))

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

1 个答案:

答案 0 :(得分:2)

将您的公式放入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)
  • 看看你如何参考上面的工作表,我注意到你似乎有两张不同的纸张 - 一张纸张名称中的单词之间有空格,另一张没有。我怀疑情况并非如此,所以你应该从公式中删除这些空格。
  • 您是否也不同意是否在工作表名称周围使用了撇号()。在单元格中试用你的公式,Excel似乎不喜欢它们,所以它们应该也可以。但是它们应该也可以。
  • 如果它是假的,那么你最内层的if语句似乎缺少一个返回值。

猜测你希望公式返回什么,我最终得到了这个公式:

=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
        )
    )
)

这有什么接近你想要的东西吗?

作为建议的最后一句话,写一个像这样的公式是一种绝对的痛苦 - 相反,你可以尝试一点一点地构建它,将公式的每个部分存储在一个单元格中,看看它们是否都有效。然后你可以剪切和粘贴,使它们都适合一个单元格。即如果你在单元格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%确定我的一切都是正确的,没有适当的数据,跟踪所有的parantheses和结果有点困难。但这至少应该给你一个很好的起点。