Excel 公式

Excel 文本函数怎么用:LEFT、MID、RIGHT、LEN、FIND

更新于 2026-06-04 · 阅读约 7 分钟

一列姓名要只取姓、一列邮箱要截掉域名、一列带括号的编码要抠出括号里的内容——这类「从文本里取一部分」的活,Excel 靠 LEFT、MID、RIGHT、LEN、FIND 这几个函数来做。本文把它们一个一个讲清,再演示怎么组合,最后告诉你为什么用超级表的拆分工具或一句话 AI 能省掉一大截嵌套公式。


超级表中从一列文本抽取/拆分出需要部分的示意
从文本里抽出要的部分——超级表用拆分工具或一句话 AI。

LEFT / RIGHT / MID:从左、从右、从中间取字符

这三个函数是最基础的文本截取工具,逻辑一看就懂。

LEFT(文本, 字符数) — 从左边取 N 个字符。

例:A2 是 张三-销售部,只想要姓名两字:

=LEFT(A2, 2)张三

RIGHT(文本, 字符数) — 从右边取 N 个字符。

例:A2 是 合同编号_20240601,只想要末尾 8 位日期:

=RIGHT(A2, 8)20240601

MID(文本, 开始位置, 字符数) — 从第 N 个字符起取 M 个字符。

例:A2 是 GD-2024-0087,想取中间年份 4 位(第 4 位开始):

=MID(A2, 4, 4)2024

小提醒:Excel 里中文和英文各算 1 个字符
LEFT/MID/RIGHT 都按「字符」而非「字节」计算,所以「张三」算 2 个字符,「ABC」也算 3 个字符,不用担心中英文不一致的问题。LEN 也是同样的计数规则,后面会专门说。

LEN / FIND:算长度、定位某字符的位置

只知道「从左/右取 N 个」还不够——很多时候你不知道 N 是几,要先用 LEN 或 FIND 算出来。

LEN(文本) — 返回文本的字符数(含空格)。

例:A2 是 上海鑫沃克斯,LEN 返回 6;A2 是 TableDI,LEN 返回 7。常见用途是配合 MID 动态算截取长度。

FIND(要找的字符, 文本, [起始位置]) — 返回某字符在文本中第一次出现的位置编号(从 1 开始数);找不到会报错 #VALUE!

例:A2 是 user@tabledi.com.cn,想知道 @ 在第几位:

=FIND("@", A2)5(从左数第 5 个字符是 @)

组合用法:MID + FIND 动态截取

实际工作里,分隔符的位置往往是变的——有人姓名三个字,有人两个字;邮箱用户名长短不一。这时候要把 FIND 算出的位置传给 MID 或 LEFT,做「动态截取」。

例一:从邮箱里取 @ 前面的用户名

A2 是 zhangsan@tabledi.com.cn,想取 zhangsan

=LEFT(A2, FIND("@", A2) - 1)

逻辑:FIND 找到 @ 的位置,减 1 就是 @ 前面的字符数,LEFT 按这个数截取。

例二:从「姓名-部门」格式取姓名

A2 是 李四-市场部,分隔符 - 前面是姓名:

=LEFT(A2, FIND("-", A2) - 1)李四

例三:取两个括号之间的内容

A2 是 产品编码(PD-0023),想取括号里的 PD-0023

=MID(A2, FIND("(", A2) + 1, FIND(")", A2) - FIND("(", A2) - 1)

逻辑:左括号位置 +1 是内容起点;右括号位置 - 左括号位置 - 1 是内容长度。

这些组合公式的麻烦

看到上面那串 MID+FIND+FIND 你可能已经皱眉了。确实,用时间长了会碰到几个典型痛点:

  • 嵌套越写越长,读不懂也改不了。三层以上的嵌套公式,一周后自己都认不出来。别人接手更是灾难。
  • 分隔符位置一变全崩。数据里混进了全角括号或全角横线,FIND 找不到直接报 #VALUE!,整列变红。
  • 中文字符数和字节数的混淆。LEN 在 Excel 里对中文按字符算,但 LENB 按字节算(中文算 2)。两个函数行为不同,混用容易算错长度。
  • 规则一调就要改公式。产品编码改格式了,从括号改成斜线,之前写的所有公式要全部重写。
  • 批量处理几千行时维护成本高。同一列里如果数据格式不统一,单一公式覆盖不了所有情况,得一行一行处理。
核心痛点一句话
LEFT/MID/RIGHT/FIND 单独用还好,一旦开始嵌套就迅速变成只有写的人能看懂的一次性公式,数据格式稍有变化就得重来。

更省事:超级表拆分工具 / AI 一句话抽取

超级表(TableDI)是一款桌面高能表格助手,macOS / Windows 可用,离线、零登录、本地运行。它把「从文本里抽出某一段」做成了两种方式,都不需要你手写函数。

方式一:拆分工具(列拆分)

适合有明确分隔符的情况(按 -@、括号、固定位置等拆分)。步骤:

  1. 在超级表里打开含文本的那一列,点顶部「拆分」按钮,进入列拆分工具
  2. 选择分隔符类型(固定字符 / 固定位置 / 正则),预览右侧实时显示拆出来的结果。
  3. 确认预览无误,点「拆分」,每段内容自动填入对应列。整列一次处理,不用写任何公式。

方式二:AI 一句话抽取

适合规则不固定、或你不知道该用什么分隔符的情况。步骤:

  1. 选中文本列,进入「AI 处理」。
  2. 用一句话描述你想要什么,例如:「提取 @ 前面的用户名」、「取括号里的编码」、「把省市区分开」。
  3. AI 理解意图,自动处理整列并填入新列。格式变化也不会让结果崩掉,因为 AI 理解语义而非靠固定位置。

还可以用「合并列」把拆好的几段重新拼起来,或在配合批量替换功能把不需要的部分清理掉。整个过程在一个界面里完成,不需要在公式栏里堆嵌套。

函数公式 vs 超级表做法对照

场景Excel 文本函数超级表
固定位置截取LEFT / MID / RIGHT + 数字参数拆分工具选「固定位置」
按分隔符截取LEFT(A2, FIND("-",A2)-1)拆分工具选分隔符,即时预览
规则不固定 / 自然语言描述手写嵌套公式,容易出错AI 一句话抽取,理解语义
格式变化后维护公式全部重写重新描述意图即可
批量几千行拖公式 + 检查报错整列一次处理
中英文混合需注意 LEN / LENB 差异AI 理解语义,不受计数规则影响

常见问题

LEN 计算中文,是算 1 个还是 2 个?

在 Excel 里,LEN 对每个字符(无论中文还是英文)都算 1。所以 LEN("超级表") 返回 3,LEN("TableDI") 也返回 7。如果你用的是 LENB,中文则按 2 字节计,英文按 1 字节计——两个函数的结果不同。绝大多数「截取文字」的场景用 LEN 即可,只有需要配合字节级操作时才用 LENB

FIND 和 SEARCH 有什么区别?

两者都是「找某字符在文本中的位置」,主要差别在于大小写敏感性:FIND 区分大小写FIND("a", "Apple") 找不到返回 #VALUE!SEARCH 不区分大小写SEARCH("a", "Apple") 返回 1。另外 SEARCH 支持通配符(*?),FIND 不支持。日常处理中文数据时两者差异不大;处理英文字段时要根据需要选。

分隔符的位置不固定,怎么动态截取?

用 FIND 先算出分隔符的位置,再把这个位置传给 LEFT / MID / RIGHT。例如取 @ 前面的内容:=LEFT(A2, FIND("@",A2)-1)。如果要取两个分隔符之间的内容,就需要两次 FIND 计算起点和长度,公式会变长。如果觉得嵌套太复杂,也可以用超级表的 拆分工具(选分隔符模式),或直接用 AI 一句话告诉它「取 @ 前的用户名」,不用拼公式。

不想堆嵌套公式?

免费下载超级表,用拆分工具或一句话 AI 把需要的文本段一键抽出来

免费下载(macOS / Windows)