MICROSOFT

EP04. “Two-way Lookup 二维查找”

首页 Microsoft 工具 Excel · Functions · Lookup & Reference · EP04
约 5 分钟· #EP04#Excel#Lookup & Reference
🔒 登录后可标记已读
  • 讲怎么在一个二维表格里,同时按「行标签」和「列标签」两个条件查一个交叉值
  • 比如查「2 月份、巧克力口味」的冰淇淋销量
  • 介绍两种做法:INDEX+MATCH 组合,以及用命名范围搭配交集运算符
  • 前置知识需要先看过 EP03 的 INDEX+MATCH
  • 学完能处理各种「行列交叉表」查数据的需求

重点内容


示例数据

一张冰淇淋销售表,行是月份(A2:A13,Jan 到 Dec),列是口味(B1:D1,比如 Chocolate、Vanilla、Strawberry),中间 B2:D13 是各月各口味的销售数量。

[截图:冰淇淋销售二维表格,标出 "Feb" 行和 "Chocolate" 列交叉的目标单元格位置]


方法怎么选

方法写法备注
INDEX + MATCH 组合=INDEX(B2:D13,MATCH("Feb",A2:A13,0),MATCH("Chocolate",B1:D1,0))不用先建命名范围,写法通用
命名范围 + 交集运算符=Feb Chocolate公式更直观像查表格坐标,但要先建好命名范围

方法一:INDEX + MATCH 组合

  1. 用 MATCH 找月份 "Feb" 在 A2:A13 里的位置:

=MATCH("Feb",A2:A13,0)

结果是 2(Feb 是第 2 个月份)

  1. 用 MATCH 找口味 "Chocolate" 在 B1:D1 里的位置:

=MATCH("Chocolate",B1:D1,0)

结果是 1(Chocolate 是第 1 个口味)

  1. 用 INDEX 在二维范围 B2:D13 里,同时指定第几行第几列取值:

=INDEX(B2:D13,2,1)

结果是 217(2 月份 Chocolate 口味的销量)

  1. 完整公式(把行列位置换成 MATCH 动态计算):

=INDEX(B2:D13,MATCH("Feb",A2:A13,0),MATCH("Chocolate",B1:D1,0))


方法二:命名范围 + 交集运算符

  1. 选中整个数据范围 A1:D13
  2. 用 Formulas → Defined Names → Create from Selection(创建选定范围内的名称)
  3. 勾选 Top row(顶行)和 Left column(左列)两个选项
  4. Excel 会自动根据行标签和列标签各自创建命名范围(示例里自动生成了 15 个命名范围)
  5. 用交集运算符(一个空格)直接取两个命名范围的交叉值:

=Feb Chocolate

  1. 动态查找(配合单元格输入):G2 输入 "Feb",G3 输入 "Chocolate",用 INDIRECT 把文本转成命名范围再取交集:

=INDIRECT(G2) INDIRECT(G3)


学完你会

  • ✅ 能用 INDEX+MATCH 在二维表格里同时按行标签和列标签查交叉值
  • ✅ 能用 Create from Selection 快速把行列标签批量建成命名范围
  • ✅ 能用交集运算符(空格)搭配命名范围,写出像查表格坐标一样直观的公式

常见错误

  • INDEX 二维查找时行列位置参数顺序搞反(应该是先行后列),导致取到的值不是预期的交叉格
  • 用命名范围+交集运算符时,两个命名范围之间要留一个空格,容易漏打或多打导致公式报错
  • Create from Selection 时忘记同时勾选顶行和左列,导致命名范围没有按预期生成

Sources

Blog / Website:

  1. Two-way Lookup