You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

谷歌表格:如何从引用其他工作表的单元格提取源表名并批量填充?

提取引用单元格的工作表名称

方法1:使用原生公式(无需VBA/脚本)

直接在Priority工作表的A2单元格输入以下公式,然后向下拖拽填充即可:

=LEFT(FORMULATEXT(B2),FIND("!",FORMULATEXT(B2))-1)

公式说明:

  • FORMULATEXT(B2):获取B2单元格中的完整公式文本(比如你的例子中会返回=Exterior!5:5)
  • FIND("!",FORMULATEXT(B2)):定位公式中!符号的位置
  • LEFT(..., 位置-1):截取!符号之前的文本,也就是引用的工作表名称

方法2:自定义函数(Excel适用)

如果原生公式无法满足需求,或者你更倾向于自定义函数,可以通过VBA实现:

  1. 按Alt + F11打开VBA编辑器
  2. 右键点击当前工作簿 → 插入 → 模块
  3. 粘贴以下代码:
Function GetRefSheet(cell As Range) As String
    Dim formulaStr As String
    formulaStr = cell.Formula
    ' 检查公式是否包含工作表引用标识"!"
    If InStr(formulaStr, "!") > 0 Then
        ' 去掉开头的"=",再截取"!"之前的内容
        GetRefSheet = Mid(Replace(formulaStr, "=", ""), 1, InStr(formulaStr, "!") - 2)
    Else
        GetRefSheet = "" ' 无外部引用时返回空值
    End If
End Function
  1. 返回Excel,在A2单元格输入=GetRefSheet(B2),向下拖拽填充即可

为什么之前的方法失败?

  • INDIRECT函数的作用是根据文本字符串解析单元格引用,无法反向提取现有引用的来源工作表名称,所以不适用这个场景。
  • 自定义函数失败通常是因为没处理公式开头的=符号,或者未正确判断!的位置导致截取错误。

内容的提问来源于stack exchange,提问作者Sam Moore

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 18:43:22