一个公式看懂动态跨表查找:P8 + VLOOKUP

公式:=P8+VLOOKUP($A8,INDIRECT("'"&$B$1&"'!$A:$AH"),17,0)

一、这个公式到底在算什么?

把它拆成两块就清楚了:

scss 复制代码
= P8 + VLOOKUP(查找值, 查找区域, 返回列, 精确匹配)
部分 作用
P8 当前工作表的某个基础数值
VLOOKUP(...) 根据 A8 的值,去另一个工作表里查找对应数据
+ 把两部分加起来,得到最终结果

二、VLOOKUP 的参数逐个拆解

1. 查找值:$A8

  • 在当前表第 A 列第 8 行取一个值。
  • $A 表示列固定,8 表示行会随公式下拉而变化。
  • 比如下拉一行会变成 $A9、再下是 $A10。

2. 查找区域:

bash 复制代码
INDIRECT("'"&$B$1&"'!$A:$AH")

这是整个公式最灵活的部分。

INDIRECT 的作用

INDIRECT 把一段文本变成真正的 Excel 引用。

比如 B1 单元格里写的是 Sheet2,那么:

bash 复制代码
INDIRECT("'"&$B$1&"'!$A:$AH")

实际等价于:

bash 复制代码
'Sheet2'!$A:$AH

也就是说,查找哪个工作表,是由 B1 的内容动态决定的。

为什么要加单引号 '?

如果工作表名里包含空格、特殊符号,或者和区域地址连在一起,Excel 要求用单引号包裹工作表名。

比如:

bash 复制代码
'2026 年数据'!$A:$AH

加单引号是最稳妥的写法,所有表名都兼容。

$B$1 的 $ 含义

$B$1 是绝对引用 ,无论公式复制到哪里,都锁定在 B1 单元格。

这样整条公式向下填充时,查找的表名不会跟着变。

3. 返回列:17

VLOOKUP 的第三个参数表示返回查找区域中的第几列。

区域是从 A 列到 AH 列,第 1 列是 A,第 17 列对应:

A(1)、B(2)、C(3)、D(4)、E(5)、F(6)、G(7)、H(8)、I(9)、J(10)、K(11)、L(12)、M(13)、N(14)、O(15)、P(16)、Q(17)

所以返回的是目标表中 Q 列的值。

4. 匹配方式:0

0 表示精确匹配 。如果 A8 的值在目标表 A 列里找不到,公式会返回 #N/A。

如果想模糊匹配,可以改成 1,但通常数据查找用 0 更安全。

三、整个公式的执行流程

  1. 读取当前表 P8 单元格的值。
  2. 读取 B1 单元格里的工作表名称。
  3. 用 INDIRECT 把表名和区域拼接成跨表引用。
  4. 在目标表的 A 列里找 A8 的值。
  5. 找到后,返回同一行里第 17 列(即 Q 列)的值。
  6. 最后把 P8 和查找到的值相加。

四、实际例子

假设:

  • 当前表是 汇总表。
  • B1 单元格的内容是 销售数据。
  • A8 的值是 S001。
  • P8 的值是 100。

在 销售数据 表中:

A列(编号) B列 ... Q列(金额)
S001 ... ... 500

那么公式计算过程就是:

bash 复制代码
= 100 + VLOOKUP("S001", '销售数据'!$A:$AH, 17, 0)
= 100 + 500
= 600
相关推荐
米米商聊1 小时前
同名附件为什么被 Map 覆盖?重复键与一对多索引
前端·javascript
echome8882 小时前
Python 异常处理:try、else、finally 的正确搭配
开发语言·前端·python·异常处理·编程技巧
时间的情敌2 小时前
OpenLayers 实战|Vue3 + OpenLayers 完整工程案例(加载天地图、要素、弹窗、绘制、WFS)
前端·openlayers
陈随易2 小时前
下载神器!Motrix 停更三年后重写回归
前端·后端·程序员
前端的日常3 小时前
一个人+AI做情侣食谱小程序,0 费用的服务器
前端·后端
计算机魔术师3 小时前
谷歌搜索广告踩刹车,AI广告成为救命稻草
前端
总要学点什么3 小时前
第81篇:数据可视化-PM2.5分布——让圆点的胖瘦替每座城市报出浓度
前端·信息可视化·echarts·cesium·空间分析
IT_陈寒3 小时前
Vue的v-for里用了个临时变量,页面直接挂了
前端·人工智能·后端
hunter_0764 小时前
一次 iOS 真机签名 409 的完整排查:证书、设备、描述文件为什么总是"对不上"
前端
枣把儿4 小时前
开源!公众号排版+一键发布工具懒人版
前端