值范围之间的值

时间:2013-09-27 13:03:10

标签: excel excel-formula vlookup excel-2013 worksheet-function

有这个:

Class   Min    Max
Alfa    0      16.5
Beta    16.5   18.5
Charlie 18.5   25
Delta   25     30

而且:

Value X
35.52600894
26.27816853
29.53159178
29.84528548
26.77130341
25.07792506
19.2850645
42.77156244
29.11485934
29.5010482
19.30982162

我希望一个单元格有一个类似IF语句的东西(它有更多的值,不是这么小,它有8个类)。这个长期的IF语句可能不起作用(IF限制为7)并且是一种丑陋的方式。我在考虑使用hlookup,但我不确定这是否是最好的选择。 我也可以交换表中的列,所以我可以使用" Min | MAX |类" X值在一列中。

基本上:=IF(X>=0 && X<16.5, Alpha, IF(X>=16.5 && X<18.5, Beta, IF(...

2 个答案:

答案 0 :(得分:2)

我认为你的意思是VLOOKUP,并且会有更好的方式。

制作像这样的范围表

Min    Class
0      Alfa
16.5   Beta
18.5   Charlie
25     Delta
30.5   Unidentified

在您的详细信息表中使用公式“= VLOOKUP(A2,Ranges!A:B,2,TRUE)”[真实很重要]

你得到了

Value X Class
35.52600894 Unidentified
26.27816853 Delta
29.53159178 Delta
29.84528548 Delta
26.77130341 Delta
25.07792506 Delta
19.2850645  Charlie
42.77156244 Unidentified
29.11485934 Delta
29.5010482  Delta
19.30982162 Charlie

答案 1 :(得分:1)

如果您的最大范围名为MaxVal且您的班级范围名为Class,请尝试:

    =IF(A2>30,"",INDEX(Class,MATCH(A2,MaxVal)))  

(调整引用以适应)。

=MATCH()这里使用match_type的{​​{1}}参数:“MATCH函数将找到小于或等于value的最大值。您应该确保按升序对数组进行排序。

如果省略match_type参数,则MATCH函数假定match_type为1.“

任何大于1的X值都会返回空白(30),但可插入文字以适合(例如""而不是"Unidentified")。

如果在""AlphaClass0下的Max标签下方直接插入行,则可以通过删除错误陷阱来简化公式。同样通过以类似的方式删除条件。

没有必要指定每个范围的两个边界。

选择了INDEX / MATCH,而不是根据here给出的VLOOKUP。

PS对于希腊语* alpha *betα通常是Alpha。

编辑重新澄清

25 Delta而不是Charlie的最简单修复可能是从每个最大值中扣除少量数据,例如将25更改为= 25-1/1E100 }。