我的等式是:
=IF(B2>10,"129920",IF(B2>15,"350591",IF(B2>25,"498636",IF(B2>50,"752640",IF(B2>100,"1231889")))))
全部显示 129920;即使 B2 是 35 也无法正常工作,答案显示 129920 而不是 498636。
答案1
它运行良好,只是不像你预期的那样;-)
在您的示例中(B2 等于 35),B2 > 10,因此第一个 IF 返回“129920”并且不会落入第二个、第三个 IF 等。
反转比较的顺序(即从最高数字开始),它就会按您预期的方式工作。
答案2
不,它按写的那样工作 - B2>10
。因此,第一个条件为 TRUE,显示 129920。
我想如果你读了这篇文章,你应该能够明白,但答案是:扭转它们。
答案3
其他人已经提供了解释,但我想指出的是,嵌套的 if 通常难以阅读并且容易出错。
您可以考虑使用 IFS 来稍微清理一下逻辑
https://support.microsoft.com/en-us/office/ifs-function-36329a26-37b2-467c-972b-4a39bd951d45
或者更好的是,创建一个包含截止值的表,然后使用 Xlookup 或 Vlookup,并将匹配模式设置为 -1
https://support.microsoft.com/en-us/office/xlookup-function-b7fd680e-6d10-43e6-84f9-88eae8bf5929
https://support.microsoft.com/en-us/office/vlookup-function-0bbc8083-26fe-4963-8ab8-93a18ad188a1
未来你会感谢你让你的excel表更加清晰、整洁
答案4
我的答案并没有真正改善您已经给出的其他答案,它只是展示了我发现的一种使公式更易读的方法。一年后,当我必须编辑规则时,这将更容易做到,因为我使公式尽可能易读。
如果您可以访问 LET 公式,我会越来越多地使用它来编写更长的公式,并使用 alt-enter 来创建可读的换行格式。
所以我的方法更像是:
=LET(
a, {0, 10, 15, 25, 50, 100},
b, {0, 129920, 350591, 498636, 752640, 1231889},
XLOOKUP( B2, a, b, 0, -1) )