前面的文章《Excel数组公式:空格替代法拆分单词》讲解了如何简单拆分有相同符号分割的文本。今天我们提高难度来处理中英文混编的文本: 我们要处理成这样的结果: Q:空格分列或者空格替代法不行么? 答案是不灵,因为英文单词之间也有空格,空格的数目不确定,位置不固定,所以分列和替代法都不能处理这样的文本。 这些数据还是有规律可循: 一、都可以分割成五部分,之间是以空格来分割的,当然英文名称和英文全称里面会有多余的空格。 二、缩写是统一的2个大写英文字符 我们先从简单的着手,提取“中文名称”: 至少有三种以上的方法可以提取出最左侧的“中文名称” 一、最简单的方法,查找第一个空格位置(普通公式)
二、二分法(数组公式)
三、精确定位法(数组公式)
我们重点研究第三种方法 Q:为什么有简单的方法不用,偏用最复杂的? 简单的方法只能提取“中文名称”,复杂的方法经过演化就可以提取全部内容。 公式3用语言来描述: 1、将整个字符串按照字符串长度打散 2、逐个判断字符的编码是否小于等于最小汉字(“啊”)编码 3、如果为真,则给出这个字符的位置编号,如果为假,则赋值9的9次方 4、求这些位置编号的最小值减一作为截取字符长度 5、按照计算好的长度从左侧截取 我们仔细研究MIN函数里面的内容,就可以演化出SMALL、MAX、LARGE用来定位的函数,关键位置: 一、第一个空格的位置
或者
二、第二段中文的起点
三、第二段中文的终点
有了这三个位置,再加上“简称”是固定的两个字符这一特征,再有就是LEN(B5)字符串长度。 上面这些值之间的加加减减就能计算出我们想要的结果了: |
|
来自: L罗乐 > 《字符提取(文本函运用)》