与 30万 粉丝一起学Excel 图片 VIP学员的问题,要从摘要里面将交易单号提取出来,使用软件是Excel。 图片 既然如此,卢子只能使用常规的公式。 =-LOOKUP(1,-MID(A2,FIND("交易单号:",A2)+5,ROW($1:$15)))&"" 图片 DeepSeek R1-0528 最新版来了,为了验证效果,因此让AI来解读这条长公式。看了2遍下面的解读,太详细了,跟我的水平差不多。 另外,腾讯元宝、ima、搜狗输入法、QQ浏览器等多款产品今天也接入最新版DeepSeek,多项能力全面提升。 · 推理能力大幅提升,代码水平更强 · 写作表现更有人味,格式更规范 · 思考不仅快,还有条理、讲逻辑,同时支持长时间思考 图片 这条Excel公式的作用是从A2单元格的文本中提取"交易单号: "后面的数字序列。逐步解析:1. 定位起始位置 `FIND("交易单号: ",A2)` → 查找"交易单号: "在A2文本中的起始位置(例如返回位置 `20`)。 → `+5`:跳过"交易单号: "这5个字符(含中文和冒号),直接定位到数字开始位置(如位置 `25`)。2. 截取可能数字段 `MID(A2, 起始位置, ROW($1:$15))` → 从数字起始位置开始,分别截取长度1~15的15个字符串片段(例如:`"7"`, `"72"`, `"722"`, ..., `"722551296"`等)。3. 强制转为数值 `-MID(...)` → 在截取的字符串前加负号,尝试转为数值: - 纯数字片段 → 转为负数(如 `-722551296`) - 含非数字字符(如逗号) → 返回错误值 `#VALUE!`。4. 提取最长有效数字 `LOOKUP(1, 负数数组)` → 在数值数组中查找 `1`: - 忽略所有错误值(非数字片段) - 因数组中只有负数,自动匹配最后一个负数(即最长连续数字片段) → 例如返回 `-722551296`。5. 还原正数并格式化 `-LOOKUP(...)` → 将负数转回正数(`722551296`)。 `&""` → 确保结果以文本格式输出(避免数字格式问题)。关键设计亮点:-动态适应数字长度:通过 `ROW($1:$15)` 测试1~15位长度,自动识别最长连续数字。- 错误值过滤:利用负号转换屏蔽含非数字的无效片段。- 最长匹配原则:`LOOKUP` 默认返回最后一个有效数值(即最长数字序列)。示例验证:- 输入文本: `代扣款(扣款用途:运单号:YT75344017612,交易单号:722551296,付款方A)` - 输出结果: `722551296`(成功提取交易单号)。注意事项:- 数字长度限制:`ROW($1:$15)` 最多支持15位数字,超长数字需调整参数。- 起始位置依赖:要求"交易单号: "后必须紧跟数字(中间不能有空格或其他字符)。- 特殊场景:若无交易单号,公式返回空文本(因 `&""` 处理)。此公式是Excel中高效提取不规则文本中数字的经典技巧,适用于嵌套结构文本的信息抽取。再来看看WPS里面的正则公式。=REGEXP(A2,"(?<=交易单号:)[0-9]+") 图片 这条WPS表格公式使用了WPS特有的REGEXP函数(正则表达式函数),用于从文本中提取特定模式的内容。核心组件解析:1. `REGEXP`函数 - WPS表格独有的函数(Excel不支持) - 功能:通过正则表达式从文本中提取匹配内容 - 语法:`REGEXP(文本, 正则表达式模式)`2. 正则表达式模式 `(?<=交易单号: )[0-9]+"` - `(?<=交易单号: )`:正向预查(lookbehind) 含义:匹配位置必须紧跟在`交易单号: `之后,但匹配结果不包含这段前缀文本 - `[0-9]+`:匹配1个或多个连续数字 `[0-9]`:任意单个数字(0-9) `+`:匹配前一个字符1次或多次(至少1个数字)完整工作流程:1. 扫描文本 在A2单元格中搜索所有满足模式的子串,例如: `代扣款(...交易单号: 722551296,付款方A)`2. 定位关键前缀 通过`(?<=交易单号: )`锁定`交易单号: `后面的位置(不包含这段文本)3. 提取数字串 捕获紧跟在后的连续数字序列(如`722551296`)4. 返回结果 直接输出匹配到的数字字符串优势特点:| 特性 | 说明 |