如果是像下图这种没有分隔符的地址 , 有两种方法可以实现拆分 。
通过上面的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\"\")&\"市区州盟\")))
- rest|golang笔记 | 面试题整理
- excel|pandas读取Excel知识点合集来了!赶紧进来看看!
- Netflix|EXCEL中打印技巧,职场新手必备
- excel|Excel中快速得到最小值所用到的MIN函数
- excel|EXCEL条件格式,简单的方式也能让数据更直观
- excel|五大理由告诉你买B660选小雕准没错
- excel|入门机也能体验新系统,OPPO A96用户可内测尝鲜ColorOS 12!
- 删除|Excel工作表之行、列、单元格(一)
- bilibili|Excel技巧:记住这三种方法,让你快速合并两个单元格中的内容
- excel|Excel中除法用到的是哪个函数?
