从追踪码取出发票号(MID + FIND)

中等 文本
题目说明
提示 0/4
官方解法 2
–
测试用例
1
2
3
重置
提交
fx
A
B
C
D
E
F
G
1
2
3
4
5
6
7
8
9
10
正在加载交互式电子表格...
正在准备单元格数据与公式求解引擎
○ 就绪 请在高亮的目标单元格输入公式,然后点「提交」。

题目

题目说明

A2:A5 里的追踪码由三段组成:前缀、方括号里的发票号、国家后缀。你只要中间那段——把 A2 的单号填进 Ref 单元格 B2。

单号长度会变、国家码也会变,所以不能写死任何位置:公式必须自己找到两个括号。

题目数据

用表格查看整份数据(可选中、可复制)
这道题的数据表
AB
1Tracking codeRef
2ORD[INV-4821]CN
3ORD[INV-4822]US
4ORD[INV-4823]DE
5ORD[INV-4824]FR

知识点

MID(text, start_num, num_chars) 需要起点与长度。FIND 给你起点(左括号位置加 1),用两次就能算出长度(右括号位置减左括号位置再减 1)。FIND 区分大小写,SEARCH 不区分。

解题思路

答案写在 B2。提交时我们会换 3 组输入重跑你的公式,写死数字一定过不了 —— 公式必须跟着单元格走。

  1. 目标单元格是 B2
  2. FIND("[", A2) 是左括号位置,单号从它的下一格开始
  3. 长度是 FIND("]", A2) - FIND("[", A2) - 1
  4. 公式形状:=MID(?, ?, ?)——起点与长度都来自 FIND

官方解法

展开 2 种解法(建议先自己试一次)

解法 1:一个 FIND 取起点,两个 FIND 算长度

=MID(A2, FIND("[",A2)+1, FIND("]",A2)-FIND("[",A2)-1)

以 ORD[INV-4821]CN 为例:FIND("[") 是 4,所以从第 5 个字符开始;FIND("]") 是 13,长度是 13 - 4 - 1 = 8。MID(A2, 5, 8) 得到 INV-4821。

解法 2:用 FIND 的第三个参数改变查找起点

=MID(A2, FIND("[",A2)+1, FIND("]",A2,FIND("[",A2))-FIND("[",A2)-1)

FIND("]", A2, FIND("[",A2)) 从左括号位置开始找右括号。文本里若出现更早、但不是你要的 ] 时,这种写法才正确。

函数指南

MID · LEN

相关 Excel 练习

常见问题

怎么取出两个字符之间的文本?

用 MID 搭配两次 FIND:=MID(A2, FIND("[",A2)+1, FIND("]",A2)-FIND("[",A2)-1)。+1 跳过左括号,-1 让长度不含右括号。

该用 FIND 还是 SEARCH?

FIND 区分大小写、不支持通配符;SEARCH 不区分大小写且支持通配符。括号这类分隔符两者行为相同,若同一公式里大小写另有要求,选 FIND。