从最后一笔代码算出下一个采购单号(MID + VALUE)

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

题目

题目说明

采购单编码是 PO-<年份>-<序号>,下一张要接续 A2 的序号,而不是从 1 开始。序号是最后四个字符。把下一个序号以数字填进 Next number 单元格 B2。

结果必须是真正的数字,不是文本 "0043"——下一步流程要拿它做计算。

题目数据

用表格查看整份数据(可选中、可复制)
这道题的数据表
AB
1PO codeNext number
2PO-2026-0042
3PO-2026-0043
4PO-2025-0199

知识点

RIGHT(A2, 4) 取出序号,VALUE 把它变成数字,因为文本 "0042" 加 1 会变成 "00421"。用两次 FIND 的 MID 是更精确的路线:序号在第二个连字符之后开始,所以完全不需要假设代码长度。代码里的前导零,就是文本值与数字值不相同的原因。

解题思路

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

  1. 目标单元格是 B2
  2. 序号是 A2 的最后四个字符
  3. 文本加一会变成拼接——先转成数字
  4. 公式形状:=VALUE(RIGHT(?, ?)) + 1

官方解法

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

解法 1:RIGHT + VALUE

=VALUE(RIGHT(A2, 4)) + 1

RIGHT(A2,4) 是 "0042",VALUE 变成 42,加一得 43。少了 VALUE 就会得到 "00421"——典型的「文本加数字」bug。

解法 2:第二个连字符之后取 MID

=VALUE(MID(A2, FIND("-", A2, FIND("-", A2) + 1) + 1, 4)) + 1

内层 FIND 找第一个连字符,外层从它之后开始找第二个,MID 再往后一格开始取。结果相同,而且年份位数改变时代码也不会坏。

函数指南

相关 Excel 练习

常见问题

为什么我的数字变成 421 而不是 43?

序号是文本,加一会变成拼接。先包一层 VALUE。

怎么可靠地从代码里取出一段?

用 FIND 找分隔符、再用 MID 在中间切。写死位置的话,年份或前缀一改就坏。