乐于分享
好东西不私藏

一招提取订单号:WPS和Excel正则函数用法有差异,WPS写函数的人没事找事!

一招提取订单号:WPS和Excel正则函数用法有差异,WPS写函数的人没事找事!

有学员问了个问题,其实这问题很简单
AI可以很快答出来,但是因为正则函数在WPS版本和Excel版本的写法不一样,所以现在的AI可能会有点小错误
比如豆包这么回答的:
WPS里的正则函数较regexp,所以正确的公式为:

=REGEXP(A1,”[\d-]+”)

而在Excel里的写法确为:

=REGEXEXTRACT(A1,”[\d-]+”)

问DeepSeek说法也不太对:

不得已,我跟DS指正了一下


WPS官方编写正则函数的人,真是没事找事,为什么不把正则函数的名字跟微软excel统一成一样的呢?

你指望微软这个正则函数名跟你wps保持一致吗,我想他们那么傲慢,是不可能跟你保持一致的呀。

你wps非要特立独行,我也理解,但是这不是凭空增加用户负担吗,搞得使用了这个函数的表格无法与微软excel兼容啊!!!

在日常工作中,尤其是处理电商退款、物流信息时,我们常常会遇到这样的情况:顾客已经退款,但系统自动操作后,仓库仍然发出了货物,而文本记录中混杂着订单号、退款单号等长串数字。比如下面这段文本:

已退款 2700207-013023383971563 顾客已退款但是收到货品(系统自动退款,武汉仓库未通知快递单号同步失败)

我们的目标是从这段文字中快速提取出那个带短横线的订单号 2700207-013023383971563。如果手动复制粘贴,不仅效率低,还容易出错。今天就来教大家用 WPS 和 Excel 中的正则函数,一键提取这类编号。


什么是正则表达式?

正则表达式(Regular Expression)是一种强大的文本匹配工具,可以用简短的符号规则,快速找到符合特定模式的字符串。比如我们要找的订单号是由一串数字 + 一个短横线 + 另一串数字组成的,就可以用正则表达式来描述它。


问题分析

上面例子中的编号 2700207-013023383971563 有两个特点:

  • 全部由数字和短横线 - 组成;

  • 短横线只有一条,将数字分成前后两段。

因此,我们可以用两种正则表达式来匹配:

  1. \d+-\d+ —— 明确匹配“一串数字-一串数字”

  2. [\d-]+ —— 匹配连续的“数字或短横线”

后者更简洁,能直接提取所有数字和短横线组成的连续字符,正好对应我们的订单号。


WPS 中的正则函数:REGEXP

在 WPS 表格(最新版)中,内置了 REGEXP 函数用于正则提取。语法为:

text

REGEXP(文本, 正则表达式, [匹配模式], [替换内容])

我们只需要提取第一个匹配项,所以可以省略后面参数。在 B2 单元格输入以下公式(假设原始文本在 A2):

text

=REGEXP(A2, "[\d-]+")

注意:部分旧版 WPS 可能需要指定第三个参数为 1,表示返回第一个匹配,即 =REGEXP(A2, "[\d-]+", 1)。如果公式返回错误,可以尝试加上这个参数。


Excel 中的正则函数:REGEXEXTRACT

Microsoft Excel 在 Office 365 及 Excel 2021 之后的版本中,增加了 REGEXEXTRACT 函数。用法与 WPS 类似:

text

=REGEXEXTRACT(A2, "[\d-]+")

该函数默认返回第一个匹配到的字符串。如果需要提取全部匹配,可以使用第三个参数(如 =REGEXEXTRACT(A2, "[\d-]+", 1) 返回所有匹配并自动溢出)。


两个函数的区别

软件
函数名
注意事项
WPS
REGEXP
老版本可能需要加参数 1;函数名不能写错。
Excel
REGEXEXTRACT
确保使用的是支持动态数组的版本,否则可能出错。

提醒:千万不要在 WPS 中用 REGEXEXTRACT,也不要在 Excel 中用 REGEXP,否则会得到 #NAME? 错误。


正则表达式解析

我们使用的 [\d-]+ 看起来很简洁,但包含三个部分:

  • [ ]:字符集,表示匹配括号内的任意一个字符。

  • \d:代表任意数字(0-9)。

  • -:短横线本身(在字符集中不需要转义)。

  • +:量词,表示前面的字符出现一次或多次。

合起来就是:匹配一个或多个连续的数字或短横线。因为我们的订单号刚好由数字和一条短横线组成,所以整个字符串都会被匹配到。

如果你觉得这个规则太宽泛(比如可能会匹配到电话号码 123-4567-8901),可以改用更精确的 \d+-\d+,它要求必须是一串数字、一个短横线、再一串数字,中间不能有其他字符。

例如:

  • \d+-\d+ 能匹配 2700207-013023383971563,但不会匹配 123-456-7890(因为有两个短横线)。

  • [\d-]+ 则会匹配任何数字和短横线组合,包括 123-456-7890

根据你的实际数据情况选择合适的表达式即可。


实际操作演示

假设你的数据在 A 列,从 A2 开始:

A
已退款 2700207-013023383971563 顾客已退款但是收到货品…
订单号:123456-789012,已签收
退款单号 98765-43210 已处理

在 B2 输入公式,然后向下填充:

WPS=REGEXP(A2, "[\d-]+")Excel=REGEXEXTRACT(A2, "[\d-]+")

结果 B 列会自动提取出订单号:

B
2700207-013023383971563
123456-789012
98765-43210

常见问题

  1. 公式返回 #NAME? 错误说明函数名称写错了,或者你的软件版本不支持该函数。请确认软件版本,WPS 用户请检查是否为最新版;Excel 用户需使用 Office 365 或 Excel 2021 以上。

  2. 提取结果不完整可能正则表达式匹配的范围不够。比如用 \d+-\d+ 时,如果订单号前后有空格,不会影响匹配;但如果订单号中有多个短横线,则无法匹配。可以尝试改用 [\d-]+ 或调整正则规则。

  3. 提取出了多个内容如果文本中有多个类似格式的字符串(比如同时有订单号和电话号码),[\d-]+ 会匹配每一个。此时可以改用更精确的规则,或者用 REGEXEXTRACT 的第三个参数控制返回全部匹配,再通过其他函数取需要的那个。

  4. WPS 老版本没有 REGEXP 怎么办?可以尝试用“查找”功能结合分列,或者升级 WPS 到最新版。WPS 2019 之后的部分版本其实已经内置了正则函数,如果没有,建议更新。


总结

通过正则函数提取特定模式的字符串,可以极大提高工作效率。无论是 WPS 还是 Excel,都提供了便捷的正则函数,只是函数名略有差异:

  • WPS 用 REGEXP

  • Excel 用 REGEXEXTRACT

而正则表达式 [\d-]+ 或 \d+-\d+ 都能轻松匹配常见的订单号、退款单号。下次再遇到类似的文本处理需求,别再手动复制了,试试用公式一键搞定吧!

如果你在使用过程中遇到任何问题,欢迎留言交流。我们会持续分享更多办公小技巧,助你高效工作!

本站文章均为手工撰写未经允许谢绝转载:夜雨聆风 » 一招提取订单号:WPS和Excel正则函数用法有差异,WPS写函数的人没事找事!

评论 抢沙发

6 + 1 =
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
×
订阅图标按钮