分享

数字与汉字拆分实例(一)

 L罗乐 2017-02-14

这个应该算是一个比较实用的例子了,一般做数据统计的同学会用到。


例: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,'')  ,结果为  上山打老虎



怎么样,是不是很简单,下节我们讲其他的方法!

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多