A 列:人员姓名(行标签),第 1 行:季度名称(列标签),中间区域是销量数值。需求:给定【姓名】和【季度】两个条件,找到二者交叉位置对应的销量。示例:姓名 = 王五,季度 = 3 季度,取出交叉单元格销量300。=INDEX(B2:E6,MATCH(G2,A2:A6,0),MATCH(H2,B1:E1,0))
第一个 MATCH:纵向搜索,算出目标姓名在区域内是第几行第二个 MATCH:横向搜索,算出目标季度在区域内是第几列INDEX 根据「行号 + 列号」精准定位交叉单元格取值=INDEX(B2:E6,MATCH(G2,A2:A6,0),MATCH(H2,B1:E1,0))
第 1 部分:INDEX(B2:E6, 行序号, 列序号)B2:E6 是存放销量的主体矩形区域,所有取值都在这个方框内部。INDEX 依靠后面两个数字:【区域内第几行、区域内第几列】提取单元格内容。第 2 部分:MATCH(G2,A2:A6,0) → 获取行序号演算:王五在 A2:A6 里面是第 3 行 → 返回数字3第 3 部分:MATCH(H2,B1:E1,0) → 获取列序号演算:3 季度在 B1:E1 里面是第 3 列 → 返回数字3在 B2:E6 矩形区域,取第 3 行、第 3 列单元格 → 数值300模板 1:标准二维交叉查询(案例原版,引用单元格)=INDEX(数值矩形区域,MATCH(行条件,行标签列,0),MATCH(列条件,列表头行,0))
模板 2:搭配 IFERROR,找不到数据不显示 #N/A=IFERROR(INDEX(B2:E6,MATCH(G2,A2:A6,0),MATCH(H2,B1:E1,0)),"无数据")
模板 3:Excel365 新版 XLOOKUP 等价写法(替代方案)=XLOOKUP(G2,A2:A6,XLOOKUP(H2,B1:E1,B2:E6))
- 二维业绩表:人员 + 季度、门店 + 月份交叉查询销售额;
INDEX 的矩形区域 B2:E6,只包含纯数据,不能把姓名列、表头行一并包进去;MATCH 的查找范围要单独选中【单独一列】【单独一行】。第一个 MATCH 算行号(纵向姓名),第二个 MATCH 算列号(横向表头),调换顺序直接取值错误。INDEX + 双 MATCH 所有 Excel 版本通用,不存在版本限制;新版 365 可以使用双层 XLOOKUP 替代,逻辑一致。姓名、表头前后多余空格,会造成 MATCH 匹配失败,出现 #N/A。如果表格存在重复姓名、重复表头,只会提取从上到下第一条记录。普通 VLOOKUP只能向右单向查找,无法实现双向交叉定位;INDEX + 双 MATCH 不受左右、上下位置限制,是二维表格查询最优经典方案。