在线 Excel 编辑器
免费使用

LEFT 函数:语法、示例与错误排查

更新于 2026-10-14 · 免费 · 兼容 Excel 与 Google Sheets

语法

=LEFT(text, [num_chars])

快速答案

LEFT 从单元格开头取字符:=LEFT(A2, 4) 把「AE-2026-041」变成「AE-」。字符数省略时默认 1,要得比文本长只会原样返回整格内容,而且结果永远是文本——哪怕看着像数字。

语法

=LEFT(text, [num_chars])
参数含义
text存放待切文本的单元格或字面量。必填。
[num_chars]从开头取几个字符:4 取前四个。省略时 LEFT 只取一个。必须为 0 或正数——负数返回 #VALUE!。

视区域设置不同,参数可能用分号而不是逗号分隔:=LEFT(A2; 4)。在用逗号作小数分隔符的国家/地区是标准行为。

LEFT 数的是字符,不是字节也不是词:一个字母、一个数字、一个空格、一个表情都各占一个计数。位置从 1 开始——不存在第 0 个字符。

基本示例

=LEFT(A2, 4)

定宽数据的主力:产品编码「AE-2026-041」交出国家前缀「AE-」,电话号码交出国际区号,账号交出分行号——只要有效信息永远在前 N 个字符,就是它的主场。

=LEFT(A2, SEARCH(" ", A2) - 1)

动态升级版:SEARCH 找到第一个空格,LEFT 取它之前的全部,所以「Jane Doe」得到「Jane」,「Winston Churchill」照样得到「Winston」——切点跟着数据走,不再写死数字。

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

从「john.doe@example.com」取出邮箱账号部分——「john.doe」。区分大小写时用 FIND(大小写敏感);不在乎大小写或要用通配符时用 SEARCH。

=IFERROR(LEFT(A2, SEARCH("-", A2) - 1), A2)

生产环境版本:没有横杠的行本来会因 SEARCH 找不到而炸成 #VALUE!。包上 IFERROR 后,这些行原样返回,整列不再崩。

LEFT 切出来的哪怕是数字也返回文本:LEFT(123456, 3) 得到文本「123」,不能求和。数字提取要包 VALUE(=VALUE(LEFT(A2, 3)));另外日期底层是序列号——LEFT 切的是序列号而不是显示的日期。

常见错误与修复方法

症状最常见原因修复
#VALUE!字符数为负数——或喂给它的 FIND/SEARCH 没找到分隔符,FIND 自己先返回了 #VALUE!。用正数计数,给查找分隔符的公式包 IFERROR 兜底,或先排查缺分隔符的数据行。
只返回一个字符省略了 num_chars——不写时 LEFT 默认取 1。补上计数:=LEFT(A2, 4)。真的只想要一个字符时,显式写 1 也能让意图更清楚。
切点早一个或晚一个字符分隔符附近差一:不含空格就减 1,保留空格就不减。拿一行数一遍——SEARCH 返回分隔符所在位置,SEARCH(...)-1 正好停在它前面。
取出的数字不能计算LEFT 永远返回文本,所以「007」还是「007」,「123」不求和。=VALUE(LEFT(A2, 3)) 把切出的数字转成真数值(前导零会丢,它们本来就是文本)。
结果整体后移单元格开头有看不见的填充空格,前几个字符是空格而不是字母。先清洗:=LEFT(TRIM(A2), 4),或一次性给整列去空格。

不算错误但很经典:向 LEFT 要的字符数超过文本长度时,返回整格内容而不报错。=LEFT("Hi", 50) 就是「Hi」——做「最多取 N 个字符」的安全截断很好用,但在你期待警告时会很困惑。

LEFT 与 MID 对比

LEFTMID
从哪里开始切永远是第一个字符你指定的任意位置:=MID(A2, 5, 3)
参数文本 + 字符数文本 + 起始位置 + 字符数
最适合前缀、名字、定宽表头中间片段——区号、两个分隔符之间的部分
动态起点只有终点能动(靠 FIND/SEARCH)两端都能动——FIND 可以喂给起始位置

LEFT 就是起始位置永久为 1 的专用 MID:=LEFT(A2, 4) 与 =MID(A2, 1, 4) 完全等价。当片段可能出现在开头以外的任何位置时,就换 MID——解析公式里这两个函数经常嵌套在一起。

LEFT 与分列、TEXTBEFORE 对比

LEFT(+ FIND/SEARCH)分列TEXTBEFORE(Microsoft 365)
输出新列里的活公式,源数据不动就地拆分单元格,不小心会覆盖旁边的列活公式:=TEXTBEFORE(A2, "-")
分隔符逻辑用 FIND/SEARCH 和 -1 偏移手搭对话框驱动,重复分隔符可视化处理一个参数——不用 FIND,不用减一
新增行能否存活能——向下填充即自动重算不能——新数据要重跑能——天生动态
可用版本所有 Excel 版本和 Google Sheets所有 Excel 版本仅 Excel 365 / 2021 及以后

按生命周期选:要扛住反复导入和刷新的解析用 LEFT 公式,对成品表做一次性整形用分列,Excel 够新且只需要「分隔符之前的全部」就用 TEXTBEFORE。

Google Sheets 中的 LEFT

  • 语法和默认值完全一致——上面的公式可原样粘贴到 Sheets。
  • 逗号作小数分隔符的地区用分号:=LEFT(A2; 4),与 Excel 一样。
  • FIND 仍区分大小写,SEARCH 仍不区分且支持通配符——搭档行为一致。
  • 按模式取前缀时 Sheets 还有 REGEXEXTRACT,一条表达式就能取「第一个数字之前的全部」,不用嵌套 FIND。

限制与进阶技巧

  • 一次调用只切一刀:把一个编码拆三段需要三列——LEFT、MID、RIGHT 并排是经典解析布局。
  • FIND 和 SEARCH 要有意识地选:空格、横杠这类不区分大小写的分隔符用 SEARCH,「a」和「A」必须区分时用 FIND。
  • 每个靠分隔符的提取都包 IFERROR——否则一行缺分隔符,#VALUE! 就会顺着整列蔓延。
  • 切完的数字仍然是文本:=VALUE(LEFT(A2, 3)) 是回到可计算数字的路。
  • 要取第 n 个分隔符之前的文本,嵌套 SEARCH:SEARCH("-", A2, SEARCH("-", A2) + 1) 找到第二道横杠,LEFT 切到那里。

把 LEFT 当作解析流水线的第一站:TRIM 去填充、SEARCH 找分隔符、LEFT 切取、结果是数字再用 VALUE 转换。每一站独占一列,下个月导入格式变了,只需要改一条公式。

相关工具

相关函数

常见问题

LEFT 函数在 Excel 中有什么用?

它从单元格开头返回指定数量的字符:=LEFT(A2, 4) 取前四个。不写数量时只取一个;与 FIND 或 SEARCH 搭配,切点就能跟着空格、横杠等分隔符移动。

怎么用 LEFT 提取空格或横杠之前的文本?

先定位分隔符再减一:=LEFT(A2, SEARCH(" ", A2) - 1) 取第一个空格之前的全部。SEARCH 不分大小写,FIND 分;整体再包一层 IFERROR,缺分隔符的行就不会出错。

为什么 LEFT 返回 #VALUE!?

要么字符数为负,要么内嵌的 FIND/SEARCH 没找到分隔符——FIND 找不到时自己就返回 #VALUE!,LEFT 跟着继承。用 IFERROR 兜底,并检查哪些行缺分隔符。

LEFT 和 MID 有什么区别?

LEFT 永远从第 1 个字符开始,只需一个计数;MID 从你指定的位置开始,需要起始位置和计数两个参数。LEFT 适合前缀和名字,MID 适合埋在中间的片段。

为什么 LEFT 取出的数字不能计算?

LEFT 返回文本,它的「123」是标签不是值。用 =VALUE(LEFT(A2, 3)) 转换——但注意前导零在真数字里会消失,因为它们本来就只是文本。

num_chars 比文本长会怎样?

LEFT 直接返回整格内容——=LEFT("Hi", 50) 就是「Hi」,不报错也不补位。这条规则让超大计数可以安全地表达「最多取 N 个字符」。

LEFT 在 Google Sheets 里能用吗?

能——名字、参数、FIND/SEARCH 搭档和逗号小数地区的分号约定都一样。Sheets 另外还提供基于正则提取的 REGEXEXTRACT。

准备好处理你自己的文件了吗?

打开Excel 文本分列 — 免费