在 Excel 中,MID 函数是一个专门从文本字符串的“中间”任意位置提取字符的强大工具。它的语法非常直观:
=MID(text, start_num, num_chars)
- text(文本):包含要提取字符的原始文本字符串(也可以直接引用单元格)。
- start_num(开始位置):要提取的第一个字符的位置(注意:Excel 中第一个字符的位置是 1,而不是 0)。
- num_chars(字符个数):希望从文本中返回的字符总数。
为了让你更直观地理解,我们可以看一个简单的例子:
假设单元格 A1 中的文本是 "ABCDEFG",使用公式 =MID(A1, 2, 3),意思是从第 2 个字符(B)开始,往后提取 3 个字符,最终结果就是 "BCD"。
⚠️ 使用 MID 函数必须注意的 4 个细节
- 如果开始位置大于文本的总长度,函数会返回空文本(即什么都不显示)。
- 如果开始位置小于 1,函数会返回
#VALUE!错误。 - 如果字符个数是负数,函数同样会返回
#VALUE!错误。 - 如果开始位置 + 字符个数超过了文本的总长度,MID 函数不会报错,而是会直接返回从开始位置到文本末尾的所有剩余字符。
🚀 MID 函数的高级实战应用
MID 函数单独使用时,适合提取固定位置的字符;但在实际工作中,它经常与其他函数(如 FIND、LEN、TEXT 等)结合,解决更复杂的动态提取问题。
1. 提取身份证中的出生日期和性别(最经典用法)
假设 A2 单元格是 18 位的身份证号。
- 提取出生日期:身份证的第 7 到 14 位是出生年月日(YYYYMMDD)。
- 公式:
=MID(A2, 7, 8) - 进阶技巧:如果想直接变成标准的日期格式(如 1990-01-01),可以套用 TEXT 函数:
=TEXT(MID(A2, 7, 8), "0000-00-00")。 - 判断性别:身份证的第 17 位代表性别,奇数为男,偶数为女。
- 公式:
=IF(ISEVEN(MID(A2, 17, 1)), "女", "男")
2. 提取两个特定符号之间的内容
假设 A2 单元格的内容是 "KTE-A1002-James",你想提取两个短横线中间的 "A1002"。
- 公式:
=MID(A2, FIND("-", A2) + 1, FIND("-", A2, FIND("-", A2) + 1) - FIND("-", A2) - 1) - 原理解析:
FIND("-", A2) + 1:找到第一个短横线的位置,并加 1,作为提取的开始位置。- 后面的一长串
FIND组合:目的是算出第二个短横线的位置,减去第一个短横线的位置,再减 1,从而精准算出中间这段文本的字符个数。
3. 提取固定前缀后的所有内容
假设 A2 单元格是 "订单号123456789",你想把“订单号”三个字后面的所有数字提取出来,但数字的长度不固定。
- 公式:
=MID(A2, 4, LEN(A2) - 3) - 原理解析:
4:因为前缀“订单号”占了 3 个字,所以从第 4 位开始提取。LEN(A2) - 3:用文本的总长度减去前缀的 3 个字,剩下的就是后面所有数字的长度。这样无论后面数字有多长,都能一次性全部提取出来。
4. 提取日期中的年、月、日
如果 A2 单元格是文本格式的日期 "2024-07-01"。
- 提取年份:
=MID(A2, 1, 4) - 提取月份:
=MID(A2, 6, 2) - 提取日期:
=MID(A2, 9, 2)
夜雨聆风