【问题标题】:Find what range a number belongs to查找数字所属的范围
【发布时间】:2012-04-25 14:01:01
【问题描述】:

我编写了一个函数来根据评分表计算学生获得的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 回车)

谢谢

【问题讨论】:

    标签: excel


    【解决方案1】:

    您在正确的轨道上,但您的公式返回的是一个数组而不是单个值。将结果包装在 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)
    

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

    【讨论】:

    • 我喜欢否定选项,看似简单!
    • @lori_m 谢谢。我仍然不明白如果它不在列表中,他是如何查找一个值的,为什么会有这些负号?
    • @myro: LOOKUP 不做完全匹配,它在查找范围内找到小于或等于查找值的第一个值,并从结果范围但查找范围内返回相应的值必须按升序排列,有关详细信息,请参阅 MS 帮助。为简化起见,您可能希望按分数升序对成绩表进行排序,并使用 B 列作为查找范围,这样就不需要负号。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-01
    • 2010-09-18
    相关资源
    最近更新 更多