excel里用index查数据逻辑很简单:先框选要返回的目标区域,再指定要取的行号、列号就行。单独用的时候适合直接按位置取值,和match组合起来,就能按姓名、编号、电影名这类自定义条件搜结果。最基础的写法是 =index(返回区域,行号,列号),要做精准条件查找的话,常用的组合写法是 =index(返回区域,match(查找值,查找列,0),match(字段名,标题行,0))。
第一步:确定返回区域
先找准你要提取的数据所在范围。比如你要根据序号查电影销售额,直接把整张电影清单表格设为返回区域就行;要是你只需要取「销售额」这一列的内容,区域也可以只框选销售额列。选的区域越精准,后面数行号、列号的时候越不容易出错。

第二步:输入INDEX基础公式
在要出结果的单元格里输入类似 =INDEX(B5:E16,4,4) 的公式就行。第一个参数 B5:E16 就是你选好的返回区域,第二个参数 4 指的是取这个区域里的第 4 行,第三个参数 4 指的是取区域里的第 4 列。这个例子最终返回的就是区域第 4 行第 4 列的内容,也就是对应那条记录的销售额。

第三步:搭配MATCH查找行号
不想手动数行号的话,直接用MATCH函数自动定位位置就行。公式可以写成 =INDEX(B5:E16,MATCH(H4,B5:B16,0),4):H4 是你要搜的目标名称,B5:B16 是名称所在的那一列,0 代表要精确匹配,最后的 4 表示从返回区域第 4 列取结果。

第四步:检查返回结果
核对结果的时候,回到原始数据表对照一下查找值所在的行就行。结果单元格出来的数值,要和源表里同一行、目标字段列的内容完全对得上。你试着改一下查找值的内容,公式结果会自动同步更新,就说明INDEX已经能正常通过MATCH定位的位置取数了。

INDEX函数语法
INDEX(array,row_num,[column_num]) 是我们最常用的数组形式语法。array 是你要从中提取数据的单元格区域;row_num 是区域范围内的第几行;column_num 是区域范围内的第几列,要是返回区域本身就只有一列数据的话,这个列号参数可以直接省略。
| 参数 | 示例 | 说明 |
|---|---|---|
array |
B5:E16 |
准备从这块区域里返回数据 |
row_num |
4 或 MATCH(H4,B5:B16,0)
|
指定区域内部第几行 |
column_num |
4 或 MATCH(H5,B4:E4,0)
|
指定区域内部第几列 |
常见错误和处理
返回 #REF! 报错,一般是行号或者列号超出了返回区域的范围;返回 #N/A,大多是MATCH没找到符合条件的精确匹配项;结果串到其他列的话,优先检查INDEX的返回区域和MATCH的查找列是不是从同一行开始的。查找文本类内容的时候还要注意多余的隐藏空格,可以先用 TRIM 函数清理一下查找值再搜。
扩展示例
举几个常用的扩展用法:要按姓名查对应分数,可以写 =INDEX(C2:C20,MATCH(F2,A2:A20,0)),这里C列存的是分数,A列存的是姓名。要做同时匹配行和列的二维查找,可以写 =INDEX(B2:E20,MATCH(H2,A2:A20,0),MATCH(H3,B1:E1,0)),先用第一个MATCH定位行,再用第二个MATCH定位列。新版Excel也能用XLOOKUP完成同类任务,但INDEX+MATCH对旧版本兼容更好,查找列不在表格最左侧时用起来也更灵活。











