问题来源
学习群里,有位朋友传来体育评分标准,要求将学生们的体育成绩折合为分数。
(更多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 错误值。
