这个应该算是一个比较实用的例子了,一般做数据统计的同学会用到。 例:12345上山打老虎, 将这个内容中数字和汉字分别拆分到两个单元格中。 这个问题的本质就是提取其中的数字放到一个单元格,然后提取剩下的文字放到另一个单元格。 首先我们要提取数字,这里用到LOOKUP LEFT函数组合,(因为数字在左边,如果在右边则用RIGHT)。 在B1输入 =LOOKUP(9^9,--LEFT(A1,ROW(1:9))),得到的结果为 12345,数组成功提取。 分析下这个公式,先看下LOOKUP函数中第二个LEFT相关的参数, --LEFT(A1,ROW(1:9)) 前面的 -- 就是把文本转换成数值的作用,为什么要加这个符号稍后说明。LEFT函数本身是从左起取一个字符串中若干字符,而其中第二个参数,ROW(1:9),结果展开就是 一个纵向的数组: 所以LEFT函数最后的结果也会根据ROW()的变化得到一组数组: 这里的ROW(1:9)意思就是取值的字符长度,字符长度一定要大于等于截取内容中数字的长度,否则会截取不全,比如说改成ROW(1:4),最多只能截取到1234,而得不到后面的5。 那这个LEFT函数前面加上 -- ,意味着把截取到的内容转换成数值,而我们又知道只有文本全是数字的时候才可以转化,如果有其他字符则会报错: 那以上就是整个LEFT运算逻辑了,当它作为LOOKUP的第二个参数时,还记得前面说过LOOKUP的几个关键点吗? 第二个参数要以升序排列; 当在数组中找不到被查找值,则会返回小于等于它的最大值; 在上图G列中的数值已经默认升序排列了。 LOOKUP第一个参数也就是被查找值这里写的是9^9,这里也是随便找了一个比较大的数值,但一定要大于第二个参数中的最大值。 所以最后的结果,当在数组中找不到9^9时,则返回了小于它的最大值 12345,也就是我们要提取的数字。 接着我们来提取汉字,这个就简单了,只需要用到 SUBSTITUTE 函数,把A1中的数字替换成空的单元格即可,在C1输入 =SUBSTITUTE(A1,B1,'') ,结果为 上山打老虎 怎么样,是不是很简单,下节我们讲其他的方法! |
|
来自: L罗乐 > 《字符提取(文本函运用)》