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

dan*_*dan 2 worksheet-function microsoft-excel

我不确定该IF函数是否适合开始,但问题是:
我有一个单元格Y8,它显示不同的数字:

0,5,10,15,20,35,50
Run Code Online (Sandbox Code Playgroud)

我需要输入一个返回文本值的公式,但我有 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")) 
Run Code Online (Sandbox Code Playgroud)

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

Sco*_*ner 20

您可以将 CHOOSE 与 MATCH 一起使用

=CHOOSE(MATCH(Y8,{0,10,20,30}),"Level 1","Level 2","Level 3","Level 4")
Run Code Online (Sandbox Code Playgroud)

如果你真的想要Level一个数字,我们可以这样做:

="Level " & MATCH(Y8,{0,10,20,30})
Run Code Online (Sandbox Code Playgroud)


Mat*_*don 12

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

Value    Level
 0       1
10       2
20       3
30       4
Run Code Online (Sandbox Code Playgroud)

现在你可以使用一个简单的VLOOKUP来获得Level给定的 any Value,如果阈值需要改变,或者如果需要添加新的级别,你的VLOOKUP公式不需要改变 - 只需维护阈值表,就可以了。

="Level " & VLOOKUP(theValue, theLookupTable, 2, TRUE)
Run Code Online (Sandbox Code Playgroud)

注意TRUE最后一个参数的参数,VLOOKUP使用近似匹配而不是通常使用的精确匹配模式。只要阈值升序排列,VLOOKUP将返回Level的最大价值Value是仍然比查找值。

Excel 中的示例


Bla*_*ood 8

我喜欢 Scott Craner 的回答。但是,我想我会指出一些其他选择。

如果您有 Excel 2016 或更高版本,您可以使用该IFS函数来简化嵌套IF函数的结构。

=IFS(Y8<10,"Level 1",Y8<20,"Level 2",Y8<30,"Level 3",TRUE,"Level 4")
Run Code Online (Sandbox Code Playgroud)

它的工作方式是:

  • 如果 Y8 小于 10,则返回“Level 1”,否则...
  • 如果 Y8 小于 20,则返回“Level 2”,否则...
  • 如果 Y8 小于 30,则返回“Level 3”,否则...
  • 它将返回“Level 4”

在问题中给出的示例中,Y8 中的值每增加 10,“级别”数就会增加 1。在这种特殊情况下,可以不使用 来计算级别数IF

="Level "&INT(MIN(30,MAX(0,Y8))/10)+1
Run Code Online (Sandbox Code Playgroud)

请注意,该问题指出,任何小于 10 的值都是级别 1,任何大于 30 的值都是级别 4。为了强制负数为“级别 1”并且将大于 39 的数字强制为级别 4,该公式MIN(30,MAX(0,Y8))改为使用的Y8