如何查找表格中排名第1的人员姓名?LOOKUP/VLOOKUP报错求解
公式报错原因及正确写法
错误原因
两个公式报错均为参数使用、引用范围不符合函数规则导致:
=VLOOKUP(1;D2:H19;1)错误点:- VLOOKUP要求查找值必须在所选查找区域的第一列,你选的
D2:H19第一列是存排名的D列,返回列序号填1只会返回D列的排名值,根本没有覆盖姓名列 - 缺失匹配类型参数,VLOOKUP默认走近似匹配,要求查找区域第一列必须升序排列,否则直接返回错误结果
- VLOOKUP要求查找值必须在所选查找区域的第一列,你选的
=LOOKUP(1;D2:H19;1)错误点:- LOOKUP向量形式要求第二个参数是单行/单列的查找范围,第三个参数是和查找范围同尺寸的返回范围,传入多行多列区域+数字
1完全不符合参数规范 - LOOKUP原生为近似匹配设计,要求查找范围升序,直接用于精确查找结果不可控
- LOOKUP向量形式要求第二个参数是单行/单列的查找范围,第三个参数是和查找范围同尺寸的返回范围,传入多行多列区域+数字
参考表格结构:
表格中排名存储在D列,待返回的姓名存储在B列,数据行范围为2-19行,可按使用的软件版本选对应公式:
正确公式
- 新版Excel、WPS(支持XLOOKUP)优先用此写法,无列位置、排序限制:
=XLOOKUP(1;D2:D19;B2:B19;"无匹配";0)
最后一个参数0代表精确匹配,不需要提前对排名列排序。
- 旧版Excel(无XLOOKUP)用INDEX+MATCH通用组合,兼容性最强:
=INDEX(B2:B19;MATCH(1;D2:D19;0))
逻辑:先用MATCH精确找到排名1在D列的行位置,再用INDEX从B列对应行取姓名值。
- 硬要用VLOOKUP的话,需先构造排名列在最左侧的数组区域,同时补全精确匹配参数(写法冗余,不推荐):
=VLOOKUP(1;CHOOSE({1\2};D2:D19;B2:B19);2;0)
内容的提问来源于stack exchange,提问作者Pontiako
相关产品推荐
相关产品推荐

