2012-04-25 41 views
1

我编写了一个函数,根据得分表计算学生获得的MARK。 为什么我的功能仅适用于A标记?查找某个号码所属的范围

此Excel工作表的样子

COLUMN: A  B  C  
     Student SCORE MARK 
    1 adsf  90  A 
    2 asgfd 89  FALSE  

    3  A  90 100 
    4  B  81 89 
    5  C  71 80 
    6  D  61 70 
    7  E  56 60 
    8  Fx  0 55 

这是函数:

{=IF(B1>=$B$3:$B$8,IF(B1<=$C$3:$C$8,$A$3:$A$8))} 

我使用{}数组功能支架。 (CTRL SHIFT ENTER)

谢谢

回答

5

你是在正确的轨道上,但是您的公式返回一个数组而不是单个值。在LOOKUP包裹结果应该得到所需的结果:

=LOOKUP("Z",IF(B1>=$B$3:$B$8,IF(B1<=$C$3:$C$8,$A$3:$A$8)) 

这将返回最后一个匹配的等级,因为“Z”是比在范围内的任何其他文本值大。

一个更简单的方法是:需要

=LOOKUP(-B1,-C$3:C$8,A$3:A$8) 

的负号,以便查找值按升序排列。

+0

我喜欢消极的选择,看似简单! – 2012-04-25 15:55:54

+0

@lori_m谢谢。我仍然不明白他是如何查找价值,如果它不在列表中,以及为什么这些负面迹象? – myro 2012-04-25 18:27:26

+1

@myro:LOOKUP不会执行完全匹配,它会查找查找范围中的第一个值小于或等于查找值,并从结果范围返回相应的值,但查找范围必须按升序排列,请参阅MS帮助获取更多信息。为了简化事情,您可能需要按照标记的升序排列成绩表,并使用列B作为查找范围,那么您将不需要负号。 – 2012-04-26 08:26:27