PAYATHON 2026

如何从 Excel 文本列中批量提取指定编号?

支付阿杰

结论

如果 reference number 一直位于文本中的第一对圆括号内,可以在辅助列中提取第一个 ( 与随后第一个 ) 之间的内容,再向下填充公式。

Microsoft 365、Excel 2021 或更高版本可使用:

=IFERROR(TEXTBEFORE(TEXTAFTER(A2,"("),")"),"")

示例数据的提取结果为:

654321

操作步骤

假设原始文本存放在 A 列,并从 A2 开始:

  1. 在 B2 中输入公式:

    =IFERROR(TEXTBEFORE(TEXTAFTER(A2,"("),")"),"")
  2. 按 Enter。

  3. 双击单元格右下角的填充柄,将公式填充到整列。

  4. 如果需要不依赖原始数据的固定结果,请复制 B 列,再使用“选择性粘贴 → 值”。

公式分为三部分:

  • TEXTAFTER(A2,"("):获取第一个左括号后的文本;
  • TEXTBEFORE(...,")"):截取下一个右括号前的内容;
  • IFERROR(...,""):如果单元格为空或缺少括号,则返回空白。

兼容旧版 Excel 的公式

如果 Excel 不支持 TEXTAFTER 和 TEXTBEFORE,可以改用 MID 和 FIND:

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

这个公式先找到第一个左括号,再查找其后的右括号,最后提取两个括号之间的字符。

如果需要提取为数值

以上公式默认返回文本。如果 reference number 需要参与数值计算,可以将其转换为数字:

=IFERROR(--TEXTBEFORE(TEXTAFTER(A2,"("),")"),"")

旧版 Excel 可以使用:

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

如果编号可能带有前导零,例如 001234,则不要转换为数值,否则结果会变成 1234。此时应保留文本格式。

注意事项

以上方法适用于以下情况:

  • reference number 位于第一对圆括号内;
  • 左括号和右括号都存在;
  • reference number 前没有其他括号内容。

即使后面的 comment 也含有括号,例如 (into autopac agent),也不会影响提取结果,因为公式只处理第一对括号。

如果实际数据中可能在 reference number 前出现其他括号,可以根据固定标识 Payment Funds: ( 定位:

=IFERROR(TEXTBEFORE(TEXTAFTER(A2,"Payment Funds: ("),")"),"")

这种写法的定位条件更明确,可以避免误取文本中较早出现的括号内容。

备注:内容仅供参考。