有位快递公司的朋友给我一根数据,让我帮忙取出省份。韩老师简化整理数据如下:
取省级行政区,最大的问题是:
1、行政区名称长短不一;
2、34个省级行政区,有的叫**省、有的叫**区,有的叫**市。
所以,写公式的时候,一定要把上述情况概括进来。
韩老师给大家一个公式。
公式解析
公式:
在B2单元格输入公式:
=LEFT(A2,MIN(FIND({"省","市","区"},A2&"省市区")))
公式详解
A2&"省市区":
把A2单元格内容加上“省市区”三个字,形成新的字符串。
本公式中,A2&"省市区"的结果是“浙江省绍兴市越城区省市区”;
FIND({"省","市","区"},A2&"省市区"):
在A2&"省市区"形成的字符串中分别找"省","市","区"三个字的首次出现的位置。
比如,在“浙江省绍兴市越城区省市区”中"省","市","区"三个字出现的位置是第3、6、9个字节,所以,本部分返回的结果是一组数{3,6,9};
MIN(FIND({"省","市","区"},A2&"省市区")):
在{3,6,9}中找最小值,即最早出现过的"省","市","区"的位置;
=LEFT(A2,MIN(FIND({"省","市","区"},A2&"省市区"))):
用LEFT函数,从A2单元格字符串的左边开始提取字符,提取字符的个数等于"省"或"市"或"区"最早出现的位置数字。
本公式中提取的个数是3,即“浙江省”。
补充解释
在B3单元格中的公式是
=LEFT(A3,MIN(FIND({"省","市","区"},A3&"省市区")))
在字符串“新疆维吾尔自治区乌鲁木齐市新市区”中最先出现的是字符“区”,所以自左边提取字符的个数是第一个“区”字出现的位置数字,恰是新疆维吾尔自治区。