在表格中我们会碰到从字符串或者说一段文本中截取你所须要的特定字符,Excel为我们供应了很多方法来实现这一功能。下面通过举例的形式带大家实践截取字符串的方法。
例:运用公式从文本中截取特定字符如上表,从固定文本中截取出省、市、区(县)三级的干系信息。
例如“(130102)河北省石家庄市长安区”中提取出省级“河北省”添补到C2列,提取出市级“石家庄市”添补到D2列,提取出“长安区”添补到E2列。

LEFT(B47,MIN(FIND({"省","市","区"},B47&"省市区")))
1、FIND(find_text, within_text, [start_num])
find_text要查找的文本,within_text源文本, [start_num]开始字符位置。例如“中华公民共和国”查找“公民”,find(”公民”,”中华公民共和国”)=3(即从第三个字符开始)。
2、MIN(number1, [number2], ...)
求一组数字中最小值。例如min(2,5,9)=2。
3、LEFT(text, [num_chars])
从左开始返回文本中从特定字符位置开始的字符串。text指的是源文本,[num_chars]指的是提取字符数量。例如left(“中华公民共和国”,2)=中华。
解释:
1、{"省","市","区"}:数组的运用,代表不同的选项,详细到实例中指的文本中包含“省”、“市”或“区”的三种情形。
2、MIN()的利用是为了防止涌现“区”和“市”同时涌现时截取增大的情形,例如“内蒙古自治区呼和浩特市玉泉区”,不用MIN()函数时会截取到“内蒙古自治区呼和浩特市”,用MIN()之后即取最小,就会取到“内蒙古自治区”。
3、B47&"省市区"即在源文本后加上字符防止涌现缺点,特殊是在“内蒙古自治区呼和浩特市玉泉区”这样的文本中。
(二)市级提取公式
IF(MID(B451,3,1)="市",C451,LEFT(SUBSTITUTE(B451,C451,"")&"市区州盟",MIN(FIND({"市","区","州","盟"},SUBSTITUTE(B451,C451,"")&"市区州盟"))))
1、SUBSTITUTE(源文本, 旧文本, 新文本, 更换第几个):文本中用新字符串更换旧字符串,例如“内蒙古自治区呼和浩特市玉泉区”,个中有2个“区”。
公式
结果
substitute(“内蒙古自治区呼和浩特市玉泉区”,“区”,“县”,2)
内蒙古自治区呼和浩特市玉泉县
substitute(“内蒙古自治区呼和浩特市玉泉区”,“区”,“县”,1)
内蒙古自治县呼和浩特市玉泉区
2、MID(文本,开始字符位置 ,提取字符数)
例如:mid(“中华公民共和国”,3,2)=公民。
解释:
1、由于北京市这样的直辖市的存在,与地级市形成冲突,以是用if()条件进行判断,条件MID(B451,3,1)="市"指是源文本第3个字符是“市”(直辖市具有这特色)。如果是直辖市即条件为真,实行LEFT(SUBSTITUTE(B451,C451,"")&"市区州盟");如果不是直辖市即条件为否,实行MIN(FIND({"市","区","州","盟"},SUBSTITUTE(B451,C451,"")&"市区州盟")))。
2、“市区州盟”是由于作为市级我国有4种不同类型的名称,分别为市、地区、自治州或盟。
(三)县级提取公式
IF(MID(B459,3,1)="市",SUBSTITUTE(B459,C459,""),SUBSTITUTE(B459,C459&D459,""))
解释:
1、SUBSTITUTE(B459,C459,""):指的是在源数据中将已提取的省级更换为空即去除省级部分。
2、SUBSTITUTE(B459,C459&D459,""):指的是在源数据中将已提取的省级、市级更换为空即去掉省级市级部分,余县级部分。