MICROSOFT

EP01. “Separate Strings 拆分字符串”

首页 Microsoft 工具 Excel · Functions · Text · EP01
约 5 分钟· #EP01#Excel#Text
🔒 登录后可标记已读
  • 讲怎么把一个单元格里的字符串拆开,比如把 "Smith, Mike" 拆成姓和名两个单元格
  • 介绍三种做法:用 FIND/LEFT/RIGHT 公式手动拆、用 Flash Fill 自动识别规律拆、Excel 365 专属的 TEXTSPLIT 函数
  • 不需要前置知识
  • 学完能处理各种「一格塞两个信息」的脏数据

重点内容


适用版本

公式和 Flash Fill 桌面版通用;TEXTSPLIT 函数需要 Excel 365。


方法怎么选

方法写法备注
公式(FIND+LEFT/RIGHT)=LEFT(A2,FIND(",",A2)-1)源数据改了会自动重算
Flash FillCtrl + E快,但结果是死的,源数据改了不会跟着更新
TEXTSPLIT(Excel 365)=TEXTSPLIT(A2,",")一条公式自动溢出铺满多格,仅限 Excel 365

方法一:用公式拆分

以单元格 A1 是 "Smith, Mike"(姓在前,逗号分隔,姓氏长度 5,逗号在第 6 位)为例:

提取名字(逗号后面的部分):

=RIGHT(A2,LEN(A2)-FIND(",",A2)-1)

先用 FIND(",",A2) 找到逗号位置(第 6 位),再用 LEN(A2) 拿到整串长度(11 字符),用 RIGHT 从右边截取对应长度,结果得到 "Mike"。

提取姓氏(逗号前面的部分):

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

同样先用 FIND 找逗号位置(第 6 位),LEFT 从左边截取 5 个字符(逗号位置减 1),结果得到 "Smith"。

操作步骤:

  1. 在 B2、C2 分别输入上面两条公式
  2. 选中 B2:C2,拖动右下角填充手柄向下填充到其余行

方法二:Flash Fill(闪填)

  1. 在 B2 手动输入第一个名字示例,比如 "Mike"
  2. 切到 Data 选项卡,点击 Flash Fill(或按 Ctrl + E
  3. 在 C2 手动输入第一个姓氏示例,比如 "Smith"
  4. 再次点击 Flash Fill(或按 Ctrl + E

📌 Flash Fill 的缺点:结果是"死"的,源数据改了之后,Flash Fill 填出来的内容不会跟着自动更新——公式法则会自动重算。


方法三:TEXTSPLIT 函数(Excel 365)

=TEXTSPLIT(A2,",")

用指定的分隔符(这里是逗号)把文本拆成一行或一列,一条公式就能铺满多个单元格,这种自动铺开的行为叫 spilling(溢出)。


学完你会

  • ✅ 能用 FIND + LEFT/RIGHT 组合公式拆出字符串里的姓和名
  • ✅ 能用 Flash Fill 快速识别规律拆分文本,并知道它的结果不会自动更新
  • ✅ 能判断什么场景该用公式、什么场景该用 Flash Fill 或 TEXTSPLIT

常见错误

  • 公式法里 FIND 的位置算错,忘记减 1 或加 1,导致截取多了或少了一个字符(比如把逗号本身也截进去)
  • 用 Flash Fill 后源数据更新,却忘记结果不会自动跟着变
  • TEXTSPLIT 在旧版本 Excel(非 365)里用不了,会报函数名错误

Sources

Blog / Website:

  1. Separate Strings