如果是像下图这种没有分隔符的地址 , 有两种方法可以实现拆分 。
通过上面的3个函数 , 我们知道 , 想要拆分提取字符 , 必须要知道从哪提取 , 提取多少 。
所以 , 第一步 , 我们需要知道在地址中 , 省这个字符的具体位置 , 以及省字符前面有多少字 , 就能直接提取出省这个字符串了 。
在这里引入两个函数 , 一个是find , 一个是len 。
find函数
函数作用就是用于查找指定字符在字符串中的字符数位置 , 函数最终返回值是一个数字 。 FIND(find_textwithin_textstart_num)
find(要找哪个字符在哪个字符串里找从第几个字符位置开始找)
除了查找和统计字符数 , Excel也提供findb与lenb函数 , 函数核心功能与find和len都一样 。
len函数参数
len函数用于返回指定字符串一个有多少个字符数
LEN(text)
len(文本字符串)
唯一的区别就是 , 带b的函数 , 代表查找或计数的是字节数 , 反之是字符数 。
其中日语、中文(简体)、中文(繁体)以及朝鲜语一个字符算2个字节数 。 参考下图理解 , find和findb用于查找同学位于以溪123同学中的位置 。
回到拆分地址上 , 那第一个 , 就是查找省这个字位于地址中的位置 。
=FIND(\"省\"A2)
如此得到省的位置后 , 我们便可以通过left函数 , 直接提取出省名称 。
=LEFT(A2FIND(\"省\"A2))
前面的是不是都很成功 , 但是最后一个自治区 , 就识别不出来了 。
主要是我国的行政区划分 , 不是所有的省级行政区都是省结尾的 , 还包括有市、区 。
所以这里 , 我们需要通过数组公式 , 来一次性提取出省、市、区这三个字在地址中的位置 。
数组公式如下:
=FIND({\"省\"\"市\"\"区\"A2)
「注意数组公式 , 需要按照数组公式输入方法使用」
目前只是把地址中省市区出现的位置找到了 , 还需要对数字进行对比 , 最小的那个 , 代表最先出现 , 也就是省级行政单位的位置 。
数组公式使用方法
- 需提前选中承接数组公式结果的单元格区域
- 【excel|精心整理Excel从文本中提取指定字符的4种案例!】再输入数组公式
- 最后需要按数组确认键 CTRL+SHIFT+回车 确认公式
所以我们使用min函数对其嵌套 , 得到最小位置数 , 再使用left函数提取 , 就能正确获得一级行政区名称 。
但是由于min函数不能统计包含#VALUE!的错误值数据 , 所以我们在find公式中的地址参数那里 , 手动拼接一个省市区字符串 , 使其不管怎么样 , 都不会返回错误值 。 确保min函数正确运行 。
数组公式如下:
=LEFT(A2MIN(FIND({\"省\"\"市\"\"区\"A2&\"省市区\")))
至此第一个省级名称 , 提取完毕 。
如果将原地址中的省级名称去除 , 那么剩下的地址中 , 就只包含地级和县级行政区地址信息 。
使用substitute函数 , 就可以替换字符串中的指定字符为空 , 也就是替换为\"\" 。
函数公式如下:
=SUBSTITUTE(A2B2\"\")
我们借用了刚刚提取的省级名称 , 生成了新的地址 , 基于这个地址我们采用同样的方法提取地级行政区名称 。
只需要把省级行政区的公式中的地址A2全部替换成上面的subtitute函数公式 , 再把对应的地级行政区的后缀 , 市、区、州、盟 , 全部修改 , 就可以了 。
最终的数组公式如下:
=LEFT(SUBSTITUTE(A2B2\"\")&\"市区州盟\"MIN(FIND({\"市\"\"区\"\"州\"\"盟\"SUBSTITUTE(A2B2\"\")&\"市区州盟\")))
- excel|这些简单实用的Excel技巧,都会了吗?
- excel|Excel 2021,几个特色函数的典型用法
- HTTP/3 发布!
- 将 Excel 中的数字和文本分成两列,必须弄懂 lookup 函数的查找原理
- 3D打印|Excel 2021,几个特色函数的典型用法
- excel|将 Excel 中的数字和文本分成两列,必须弄懂 lookup 函数的查找原理
- 华为|一个另类的Excel批量粘贴小技巧
- 提取 Excel 中的邮箱前缀,还是这办法好,一次设好就能躺平
- Excel–制作客户管理模板
- 用EXCEL做的工艺流程管理系统