问题来源

学习群里,有位朋友传来体育评分标准,要求将学生们的体育成绩折合为分数。

(更多EXCEL使用知识,同名V*公众号,留言相互探讨,更有练习资料下载)

评分标准非常细,为方便讲解,韩老师将数据截取一段,如下:

依据左侧评分标准,折合分数填写到右侧分数一列。

公式实现

在I3单元格输入公式:

=IF(G3="男",LOOKUP(H3,$B$4:$B$17,$A$4:$A$17),LOOKUP(H3,$D$4:$D$17,$C$4:$C$17)),公式向下填充,即得所有学生的体育分数。

公式解析

总公式:

其中:

LOOKUP(H3,$B$4:$B$17,$A$4:$A$17)

是利用LOOKUP函数向量的查找方式。

在B4:B17单列内查找H3,如果查的到,返回H3所对应的A4:A17单列内的值;如果差不到,返回比H3小且最接近H3的值所对应的A4:A17单列内的值。

比如,H3=11.92,B4:B17中没有11.92,比11.92小的最接近的数值是11.911,公式则返回11.911对应的A4:A17中A16的值63。

此处:B4:B17的值必须是升序排列才能用LOOKUP。

备注:LOOKUP的向量查找法

LOOKUP的向量形式在单行区域或单列区域(称为“向量”)中查找值,然后返回第二个单行区域或单列区域中相同位置的值。

语法

LOOKUP(lookup_value, lookup_vector, [result_vector])

LOOKUP函数向量形式语法具有以下参数:

  • lookup_value必需。 LOOKUP在第一个向量中搜索的值。 Lookup_value可以是数字、文本、逻辑值、名称或对值的引用。

  • lookup_vector必需。 只包含一行或一列的区域。 lookup_vector中的值可以是文本、数字或逻辑值。

重要:lookup_vector中的值必须按升序排列:..., -2, -1, 0, 1, 2, ..., A-Z, FALSE, TRUE;否则,LOOKUP可能无法返回正确的值。 文本不区分大小写。

  • result_vector可选。只包含一行或一列的区域。result_vector参数必须与 lookup_vector参数大小相同。其大小必须相同。

备注

  • 如果 LOOKUP函数找不到 lookup_value,则该函数会与 lookup_vector中小于或等于 lookup_value的最大值进行匹配。

  • 如果 lookup_value小于 lookup_vector中的最小值,则 LOOKUP会返回#N/A 错误值。