嵌套 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% 确定我做的一切都是正确的,没有适当的数据,跟踪所有的括号和结果有点困难。但这至少应该给你一个好的起点。
我只是整理了一个简单的电子表格,根据几个不同的范围计算欠税。我有一个 '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% 确定我做的一切都是正确的,没有适当的数据,跟踪所有的括号和结果有点困难。但这至少应该给你一个好的起点。