1

有这个:

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| Class”X 值。

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

4

2 回答 2

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
于 2013-09-27T13:20:59.480 回答
1

使用您的 Max range 命名MaxVal和 Class range 命名Class,请尝试:

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

(调整引用以适应)。

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

如果省略 match_type 参数,则 MATCH 函数假定 match_type 为 1。”</p>

任何大于的 X 值30都会返回一个空白 ( ""),但可以插入文本以适应(例如"Unidentified",代替"")。

Alpha如果在带有underClass0under的标签下立即插入一行,则可以通过删除错误陷阱来简化公式Max。同样通过删除条件,以类似的方式。

不必指定每个范围的两个边界。

由于此处给出的原因,选择了 INDEX/MATCH 而不是说 VLOOKUP 。

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

编辑重新澄清

最简单的解决方法25是从每个DeltaMaxCharlie值中减去少量,例如更改25为 = 25-1/1E100

于 2013-09-27T14:14:38.583 回答