重点内容
适用版本
桌面版通用(Excel 365 / 2021 / 2019 等)。
第一步:用 CELL 函数取得完整路径信息
=CELL("filename",A1)这个公式会返回「完整文件路径 + [工作簿名称] + 当前工作表名称」这一整串文字。公式里的 A1 可以换成任意单元格,取到的都是它所在工作表的名称。
第二步:用 FIND 函数定位工作表名称的起始位置
CELL 函数返回的字符串里,工作表名称是排在右中括号 ] 后面的部分。用 FIND 找到 ] 出现的位置,再加 1,就是工作表名称实际开始的字符位置:
=FIND("]",CELL("filename",A1))+1第三步:用 MID 函数截取出工作表名称
MID 函数需要三个参数:要截取的字符串、起始位置、截取长度。
=MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,31)- 第一个参数:第一步的 CELL 公式(完整字符串)
- 第二个参数:第二步的 FIND 公式(起始位置)
- 第三个参数:31(Excel 工作表名称最长允许 31 个字符,直接取这个上限当截取长度即可,多截也不会出错)
第四步:拼接自定义文字
用 & 运算符可以在取到的工作表名称前后加上自己想要的文字,例如:
="当前工作表:"&MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,31)第五步:取得其他工作表的名称
把公式里的单元格引用(如 A1)换成第二个工作表上的任意单元格,就能取到那个工作表的名称,例如引用 Sheet2 上的单元格就能取到 "Sheet2"。
函数速查
| 函数 | 语法 | 用途 | 例子 |
|---|---|---|---|
| CELL | =CELL("filename", reference) | 取得单元格所在的完整文件路径信息 | =CELL("filename",A1) |
| FIND | =FIND(find_text, within_text) | 在文字里查找指定字符出现的位置 | =FIND("]",CELL("filename",A1))+1 |
| MID | =MID(text, start_num, num_chars) | 从文字中间截取指定长度的子字符串 | =MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,31) |
学完你会
常见错误
- 文件还没保存过(没有文件路径)时,CELL("filename",A1) 会返回空字符串,导致后面 FIND/MID 一起出错——这个公式必须在文件已经保存过至少一次的情况下才能正常工作
- MID 的第三个参数(截取长度)随便填了一个太小的数字,导致工作表名称被截断
- 想取别的工作表名称时忘记把引用的单元格也换成那个工作表上的单元格,结果取到的还是原本那个工作表的名字
Sources
Blog / Website: