嵌套 IF Excel 公式如果为负数则显示 0

嵌套 IF Excel 公式如果为负数则显示 0

我有以下有效的公式:

=IF(G1<33000,(G1*0.35)-D8,IF(G1>33000,(33000*0.35)-D8)) 

我想补充的是,如果它返回一个负数,它将显示 0。我认为这是公式:

=IF(G1<33000,(G1*0.35)-D8<0,0, G1*0.35)-D8, IF(G1>33000,(33000*0.35)-D8)<0,0, G1>33000,(33000*0.35)-D8)

当我将该公式放入 Excel 中时,出现以下错误:“您为此公式输入了太多参数。”

答案1

这是另一种方法。顺便说一句,您没有在公式中提供 G1=33000。

您可以使用单个 IF 来实现这一点。从第一个案例开始:

=IF(G1<33000,G1*0.35-D8,33000*0.35-D8) 

如果 G1 大于或等于 33000,则该值上限为 33000。IF 测试评估 G1 是否小于 33000。如果为真,则使用第一个公式。如果为假,则使用第二个公式。因此,一个测试涵盖了两种情况。

现在,您需要将其扩展,以使计算结果不低于零。您可以使用 MAX 函数来实现这一点:

=MAX(0,IF(G1<33000,G1*0.35-D8,33000*0.35-D8))

如果结果小于零,MAX 将使用较大的零值。

您可以应用相同的逻辑来完全消除 IF 测试:

=MAX(0,MIN(G1,33000)*0.35-D8)

如果 G1 超过 33000,MIN 将使用较小的值 33000。

答案2

也许,

=IF(G1<33000,IF((G1*0.35)-D8<0,0,(G1*0.35)-D8),(33000*0.35)-D8)

我觉得您提供的几个参数顺序错误,并且括号放错了位置。IF 语句只能有 3 个参数,而不能有 4 个(与第一个语句一样)。

答案3

我的公式与@El8TedN8te 建议的稍有不同,因为他刚刚忽略了一个关键问题。

也就是说,如果值等于 33000,公式会如何反应。因为 <33000 和 >33000 都已经过测试?但 =33000 不是,这很有可能。

所以你最好用这个,

=如果(G1<33000,如果((G1*0.35)-D8<0,0,(G1*0.35)-D8),如果 (G1>=33000,(G1*0.35)-D8))

希望这对你有帮助。我测试了所有 3 种可能性后发布了解决方案。

相关内容