Excel MID 函数
MID 从一段文本的中间返回指定字符。产品流水号、证件中间几位、固定格式编号,都是同样三个参数:文本、起始位置、要取几个字符。第一个字符是第 1 位。
MID 函数语法与 3 个参数
MID 从文本中间返回一段字符。start_num 是要保留的第一个字符,从 1 起算。num_chars 是要取几个字符。MID("PRD-1023-A", 5, 4) 是 "1023"。
来源文本,通常是单元格引用(A2)。直接写字符串也可以:MID("PRD-1023-A", 5, 4) 返回 1023。
从第几个字符开始,1 起算。PRD-1023-A 的第 5 个字符是流水号的第一位数字。0 或负数会返回 #VALUE!。
要取几个字符。从第 5 位取 4 个,就是第 5 到第 8 个字符。
MID 示例:产品代码第 5 到第 8 个字符
这条 MID 示例从固定格式的产品代码里取出四位流水号。
| 产品代码 | 起始位置 | 字符数 |
|---|---|---|
| PRD-1023-A | 5 | 4 |
| SRV-8841-B | 5 | 4 |
| ACC-0050-C | 5 | 4 |
PRD-1023-A 的结果是 1023。第 1 到第 3 个字符是类别,第 4 个是连字符,第 5 到第 8 个是流水号。MID("PRD-1023-A", 5, 4) 返回 "1023"。SRV-8841-B 是 8841。ACC-0050-C 是 0050,前导零会保留,因为 MID 返回的是文本。
Excel MID 函数最常踩的 4 个陷阱
1. 起始位置从 1 算,不是 0
第一个字符是第 1 位。MID(A2, 1, 3) 与 LEFT(A2, 3) 结果相同。MID(A2, 0, 4) 返回 #VALUE!,负的起始位置也一样。
2. 起始位置超过结尾会得到空白
MID("PRD", 9, 2) 返回空字符串,不是错误。文本里根本没有第 9 个字符。结果空白却觉得不该空白时,先用 LEN 看长度。
3. 字符数是负数会得到 #VALUE!
num_chars 必须大于等于 0。负数返回 #VALUE!。若要求的字符数超出剩余长度,MID 会返回剩下的部分:MID("PRD-1023-A", 8, 10) 是 "3-A"。
4. MID 算字符,MIDB 算字节
空格和连字符各占一个位置,后面的字符都会跟着往后移。MID 统计字符。MIDB 统计字节,是双字节版本。固定格式的代码用 MID。
Excel 与 Google Sheets
Microsoft Excel (365 / Desktop)
Excel 的 MID 有三个参数,桌面版和 Microsoft 365 都支持。MIDB 用来统计字节。跨工作表写法与其他函数相同:=MID(Sheet2!A2, 5, 4)。
Google Sheets
Google Sheets 的语法相同:MID(text, start_num, num_chars)。MID("PRD-1023-A", 5, 4) 同样是 1023。两边的起始位置都从 1 起算。
这一页对应的 MID 练习
MID 练习
用 MID 取出中间的流水号。公式要跟着 A2 变,不能把 1023 写死。
常见问题
Excel MID 函数怎么运作?
=MID(text, start_num, num_chars) 从 text 的 start_num 开始,返回 num_chars 个字符。位置从 1 起算。=MID("PRD-1023-A", 5, 4) 返回 "1023"。
MID 公式要写哪三个参数?
文本、起始位置、要取的字符数。=MID(A2, 5, 4) 取出 A2 的第 5 到第 8 个字符。
MID、LEFT、RIGHT 有什么区别?
LEFT 从开头取,RIGHT 从结尾取,MID 从中间任一位置取。LEFT(A2, 3) 的结果与 MID(A2, 1, 3) 相同。
为什么 MID 返回 #VALUE! 或空白?
起始位置小于 1,或字符数是负数,会返回 #VALUE!。起始位置超过最后一个字符,返回空字符串。若字符数超出剩余长度,MID 会返回剩下的字符,不会报错。