值之间的值

拥有这个:

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 ,但我不确定这是最好的select。 我也可以交换表内的列,所以我可以有一个列“Min | Max | Class”X值。

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

我认为你的意思是VLOOKUP,而且会更好。

这样做一个范围工作表

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

在您的详细信息表中使用公式“= VLOOKUP(A2,范围!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 

使用名为MaxVal的Max范围和名为Class的Class范围,请尝试:

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

(调整引用以适应)。

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

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

任何大于30 X值都会返回一个空白( "" ),但是可以插入文本以符合(例如"Unidentified"而不是"" )。

如果一行被直接插入在Class下的AlphaMax下的0下,则可以通过删除错误陷阱来简化公式。 也以类似的方式去除条件。

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

由于这里给出的原因,selectINDEX / MATCH而不是说VLOOKUP。

PS对于希腊*阿尔法*赌注α通常是阿尔法。

编辑重新澄清

25的最简单的解决scheme是Delta而不是Charlie可能是从每个最大值中扣除一小部分,例如25变为= 25-1/1E100