具有 3 个 IF 条件的函数

具有 3 个 IF 条件的函数

我一直在寻找,但似乎无法在我的电子表格中找到一个具有 4 个值范围的 IF 函数。

我需要一个返回以下值的 IF 函数:

  • 0如果该数字介于 0 和略低于 1 之间(即 <1)。
  • 6如果数字介于 1 和 2 以下。
  • 8如果数字介于 2 和 3 以下。
  • 10如果数字在 3 到 4 之间。

编辑:=IF(A4>=3,10,IF(AND(A4>=2,P4<3),8,IF(A4>=1,6,0)))

答案1

对于您描述的情况, cybernetic.nomad 提供的INDEX解决MATCH方案可能是最简单的。如果数字始终与您描述的完全一致,那么 Chris Rogers 提供的答案甚至更简单。

我将尝试回答一个更普遍的问题:是否有一种方法可以在单个函数中检查多个条件,而无需嵌套多个IF函数。IFS函数(我认为它是在 Excel 2016 中引入的)可以让您做到这一点。

该函数采用多对参数,每对参数代表一个要测试的条件,后面是条件为真时要返回的值。该函数从第一个参数开始处理参数对,并继续处理,直到找到一个为真的条件。

=IFS(A4<0,NA(),A4<1,0,A4<2,6,A4<3,8,A4<4,10,TRUE,NA())

上述函数将:

  • 如果 A4 小于 0,则返回 #N/A(您没有说明在这种情况下应该发生什么)。
  • 如果 A4 小于 1,则返回 0(A4 也必须 >=0,否则前面的测试为真)。
  • 如果 A4 小于 2(并且 >=1),则返回 6。
  • 如果 A4 小于 3(并且 >=2),则返回 8。
  • 如果 A4 小于 4(并且 >=3),则返回 10。
  • 否则返回#N/A。

在这种情况下,您可以省略最后两个参数(,TRUE,NA()),因为NA()如果不满足任何条件,将返回它们。

答案2

INDEX/MATCH可以很容易地做到这一点。假设要检查的值在A4

=INDEX({0,6,8,10},MATCH(A4,{0,1,2,3,4}))

(请注意,如果内容A4低于零或高于 4,这将返回错误)

简要说明(应 Fixer 的要求)

MATCH(A4,{0,1,2,3,4})A4将对数组中的值进行排序{0,1,2,3,4},因此任何这样的值0 <= A4 < 1将返回 1;任何这样的值1 <= A4 < 2将返回 2;依此类推。

INDEX({0,6,8,10},...将获取从 接收的值MATCH并从数组 中返回相应的值{0,6,8,10},因此如果MATCH返回1INDEX将返回(在本例中)0;如果MATCH返回2INDEX将返回(在本例中)6;等等

为了避免上述错误,可以扩展数组,例如:

=INDEX({"too low",0,6,8,10,"too high"},MATCH(A4,{-100,0,1,2,3,4,100}))

答案3

Excel 没有内置的函数用于IF处理多个条件。不过,您可以使用多个嵌套IF语句。一个非常基本的情况:

IF(condition1,IF(condition2,value_if_true2,value_if_false2),value_if_false1)

或者:

IF(condition1,value_if_truet1,IF(condition2,value_if_true2,value_if_false2))

IF正如您在语句中看到的,您可以用另一个语句替换其中一个value_if_true或两个,从而继续嵌套条件以实现您想要的结果。value_if_falseIF

这里有很好的例子和解释:

https://exceljet.net/formula/nested-if-function-example

答案4

  • 如果数字介于 0 和略小于 1(即 <1)之间,则为 0。

  • 如果数字介于 1 和 2 以下,则为 6。

  • 如果数字介于 2 和 3 以下,则为 8。

  • 如果数字在 3 到 4 之间,则为 10。

有一个简单的方法,无需使用INDEX()andMATCH()IFS()嵌套IF()

查看您发布的公式,您正在测试单元格A4,除了0,结果遵循数学方程模式,(the integer of A4 × 2) + 4因此请尝试以下操作

=IF(A4<1,0,(INT(A4)*2)+4))

相关内容