如果另一个单元格具有多个值之一,则返回值

如果另一个单元格具有多个值之一,则返回值

我不确定该IF功能是否是正确的启动功能,但问题是:
我有一个单元格Y8,它显示不同的数字:

0,5,10,15,20,35,50

我需要输入一个返回文本值的公式,但我有 4 个参数。

我需要它返回以下内容:
如果它是......

  • ...小于 10 = 1 级。
  • ...10-19 之间 = 2 级。
  • ...20:29 = 3 级
  • ...30+ = 4 级。

使用该IF函数,我只能根据不断变化的数字获得级别 1 或级别 2 的返回值。

我使用了以下公式:

=IF(Y8<=9, "Level 1", IF(Y8<="10:19", "Level 2")) 

关于我可以使用什么公式来获取所有 4 个参数的返回值,您有什么想法吗?

答案1

有两种方法可以做到这一点,具体取决于您想要的彻底程度。

我个人更喜欢第一个例子:

=IF(Y8<=9, "Level 1", IF(Y8<=19, "Level 2", IF(Y8<=29 "Level 3", "Level 4")))

您不必担心将级别 2 定义为至少为 10,因为通过不匹配并返回“级别 1”,可以推断 Y8 必须大于 9。

如果您想要真正彻底地定义上限和下限,那么您可以做这样的事情,它还包括在 Y8 中的值不是数字的情况下返回警告/错误:

=IF(Y8<=9, "Level 1", IF(AND(Y8>=10, Y8<=19), "Level 2", IF(AND(Y8>=20, Y8<=29), "Level 3", IF(Y8>=30, "Level 4", "Not a number or some other error"))))

答案2

您可以将 CHOOSE 与 MATCH 结合使用

=CHOOSE(MATCH(Y8,{0,10,20,30}),"Level 1","Level 2","Level 3","Level 4")

如果您确实想要Level一个数字,我们可以这样做:

="Level " & MATCH(Y8,{0,10,20,30})

答案3

Level制作一个与每个阈值相对应的排序查找表:

Value    Level
 0       1
10       2
20       3
30       4

现在您可以使用简单的方法VLOOKUP来获取Level给定的任何值Value,并且如果阈值需要更改,或者需要添加新的级别,则您的VLOOKUP公式不需要更改 - 只需维护阈值表即可完成。

="Level " & VLOOKUP(theValue, theLookupTable, 2, TRUE)

注意TRUE最后一个参数的参数,VLOOKUP使用近似匹配而不是通常使用的完全符合模式。只要阈值按升序排序,VLOOKUP就会返回仍然小于查找值的Level最大值。Value

Excel 中的示例

答案4

另一个解决方案是创建一个表,保存值的下限,然后使用 VLOOKUP

具有级别值的表

=VLOOKUP(lookup value, table array, col_index_num,[range lookup])

VLOOKUP 中的最后一个变量是“近似匹配”TRUE/FALSE

选择前者将使函数尝试用数字找到“最接近的值”,这会导致函数寻找任何“低于”表中输入的值。以 9 为例,最接近的结果是 0,并将返回“级别 1”。

这种方法还允许您随时增加选项和级别。

相关内容