今天要讲这个例子,是要从以下的数据列中,提取准确的航司名称,执飞机型,飞机型号。但是看上去,它们并没什么规则可循。
以上是需求和结果,下面讲如何实现的,先介绍几个excle函数:
文末会提供实例excle写法的下载地址
1.单元格字符长度函数;
这个函数的用法比较简单,=LEN(单元格名称)就可以知道这个单元格有多少字符数。
2.查找字符函数;
上面这个例子是在找域名连接的那个点的位置在哪里。函数写法最后面的那个1指的是从第一个字符开始查找。
3.截取函数;
截取函数分左中右,左右比较简单,就是从哪个单元格截取几个字符,具体实例看上面的写法,写法中省略了等号的。
mid中间函数是在第一个参数指定了C20,然后截取第4-12个字符。
小技巧:如果你不知道函数怎么预览,写没写错,你在单元格后面=完之后tab呼出整个函数后,用快捷键ctrl+a,(就是下图蓝色字体标注的fx)即可呼出函数预览框,见黑色框内:
4.替换函数;
替换函数和ctrl+H(excle中的替换功能)的本质区别是:这个函数可以按照参数提示,批量替换第一个字符还是第二个字符,比如上面提及的http://www.lijunnan.com,替换域名中的点的时候,如果函数参数中写了1,则第一个点被替换,如果写了2,则第二个被替换。如果啥也不写,则全部替换。
好了,所用函数介绍完了。介绍下我的提取思路。
1.观察A列发现,除了中国国航以外,我们要的第一列数据:航空公司名称的结尾都是空字。于是先把国航改为航空,替换结束后再改回来就行。如图中A列到B列;
2.用find函数搜索空字位置,如C列;
3.用left函数提取B列中的对应字符,在选提取字符数的时候,直接选择C2;于是直接得出了D列,拿到了航司名称。
4.我们观察到原数据中的航班号最多是6个字节,那就用mid函数,以C列为开始(预览时看到数据错位,可以在函数列中加个1),以C列+6为结束,则提取到了航班号。虽然这个航班号不是很精准,但我们可以通过列替换,把空,和波字去掉。
5.执飞机型I列是通过right函数提取了原数据剩下的右侧字符。先通过G列,用LEN函数算出源数据总字符数,然后总字符数减去F列,因为F列的字符数就是航班号加上航司名称的字符数。
好了,分享完啦。如果看不明白,可以直接下载我的演示文档或者在下方给我留言。