Excel 中没有SUBSTRING函数。我们在 Excel 中使用 MID、LEFT、RIGHT、FIND、LEN、SUBSTITUTE、REPT、TRIM 和 MAX等函数 来提取子字符串。
MID函数
要从字符串中间开始提取子字符串,可以使用 Excel 中的 MID 函数。
说明:MID 函数从位置 7 (I) 开始,提取 3个字符。
LEFT函数
要从字符串中提取最左边的字符,可以使用 Excel 中的 LEFT 函数。
要在破折号前提取子字符串(任意长度),可以加上 FIND 函数。
说明:FIND 函数查找破折号的位置。从此结果中减去 1 以提取最左边的正确字符数。上面显示的公式简化为 LEFT(A1,4-1)。
RIGHT函数
要从字符串中提取最右边的字符,可以使用 Excel 中的 RIGHT 函数。
要提取破折号后的子字符串(任意长度),可以加上 LEN 和 FIND函数。
=RIGHT(A1,LEN(A1)-FIND("-",A1))
说明:LEN 函数返回字符串的长度。FIND 函数查找破折号的位置。减去这些值以提取正确数量的最右边的字符。上面显示的公式简化为 RIGHT(A1,6-4)。
提取括号之间的子字符串
要提取括号(或大括号、方括号、斜线等)之间的子字符串,请在 Excel 中使用 MID 和 FIND。
1.首先看下面的公式。
说明:FIND 函数查找左括号的位置。添加 1 以查找子字符串的起始位置。上面显示的公式简化为 MID(A1,6+1,2)。此 MID 函数始终提取 2 个字符。
2. 用返回子字符串长度的公式替换上面公式中的 2(第三个参数)。
=MID(A1,FIND("(",A1)+1,FIND(")",A1)-FIND("(",A1)-1)
解释:从右括号的位置减去左括号的位置和值1,找到子串的正确长度。
包含特定文本的子字符串
要提取包含特定文本(例如 @ 符号)的子字符串,请在 Excel 中使用 SUBSTITUTE、REPT、MID、FIND、TRIM 和 MAX。
1. 首先,使用 SUBSTITUTE 和 REPT 将单个空格替换为 100 个空格(或任何其他大数)。
2.下面的MID函数从@符号位置前的50(1/2*大数字)位置开始,提取100(大数字)字符。
3. 使用TRIM 函数删除前面和后面空格。
4. 把这些公式放在一起。
=TRIM(MID(SUBSTITUTE(A1," ",REPT(" ",100)),MAX(1,FIND("@",SUBSTITUTE(A1," ",REPT(" ",100)))-50),100))
注意:该步骤 2 中,MID 函数从 @ 符号位置前 50 个位置开始。如果电子邮件地址是句子中的第一个单词(单元格 A3),这将导致开始位置是负数。在这种情况下,MAX 函数(参见上面的公式)返回 1。
快速填充
如果你不擅长使用公式,可以使用Excel 中的快速填充来自动提取子字符串。
此处需要注意:Excel 不会插入公式,如果你更改 A 列中的文本字符串,Excel 将不会更新 B 列中的数字。