龙空技术网

EXCEL字符串中间数字提取进阶

DM逐梦 352

前言:

今天咱们对“excel字符串转化为数字怎么弄”大约比较看重,我们都需要知道一些“excel字符串转化为数字怎么弄”的相关文章。那么小编也在网上收集了一些对于“excel字符串转化为数字怎么弄””的相关文章,希望同学们能喜欢,同学们一起来了解一下吧!

前面两节我们讲了数字在字符串的前面、中间、后面该怎么提取,数字在中间时提取还是有点复杂,若是有小数点还得用IF判断,那样公式就更长了,本节我们再来看看别的办法。在实战中学习,才能学的真本事!

1、数字在字符串中间

昨天给出了三种方法,我们今天看看更简单的方法。

开始之前我们先学习一个知识:

除0之外的任何数的0次方都等于1

比如:2^0=1,-3^0=1,2.5^0=1

这个知识非常重要!

前面我们讲过数字在前面时的提取方法:

=-LOOKUP(1,-LEFT(A1,ROW($1:$18)))

今天我们还用这个套路,先找出字符串中数字的开始位置,昨天我们用的是match和isnumber。

今天用match和刚学的知识,

=MID(A1,ROW($1:$9),1)^0

这样的话A1中字符串就变成了{#VALUE!;#VALUE!;1;1;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!}

我们用MATCH找到第一个1的位置就表示找到了字符串中数字的起始位置了,

=MATCH(1,MID(A1,ROW($1:$9),1)^0,0)

返回来的结果是3,表示该字符串第三个位置为数字。

然后在用mid函数把字符串从第三个位置及以后的字符分解成这样:

{-4;-45;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!}

公式为:

=-MID(A1,MATCH(1,MID(A1,ROW($1:$9),1)^0,0),ROW($1:$9))

最后用lookup以1为查找值查找最后一个数字

=-LOOKUP(1,-MID(A1,MATCH(1,MID(A1,ROW($1:$9),1)^0,0),ROW($1:$9)))

三键结束。

今天群友咫尺天涯献上一条更加牛的公式:

=match(9^9,find(row($1:$10000),a1),1)

三键结束。真的很佩服,思路相当灵活。

以A1为例,

=match(9^9,find(row($1:$10000),a1),1)

find(row($1:$10000),a1),返回的结果是{#VALUE!;#VALUE!;#VALUE!;3;4;#VALUE!;……3;……#VALUE!}

省略号代表错误值,因为除了找到的三个行号外还有9997个行号返回错误值,所以用省略号表示。凡是行号对应的数字能在字符串中找到则返回其在字符串中的位置,比如行号4,在字符串中第3位,所以返回3,行号5,在字符串中第4位,所以返回4,行号45在字符串中第3位,所以返回3,但返回的这些数字相对于行数这个数组所在的位置仍然是第4位,第5位,第45位,所以用match查找9^9(一个很大的数字),匹配参数为1表示查找等于或者是小于其的值,这个值相对行号数组所在的位置,则返回最后一个3在数组中对应的位置,即45位。(=MATCH(100,{1;2;3;3;3}),公式会返回5,及找到小于100最接近100的3在数组中的第5位)

首先用find(row($1:$10000),a1)查找行数在A1字符串中的位置,结果凡是包含字符串中数字的行数都会显示成数字,其它行数则显示成错误值,然后在用MATCH查找一个很大值在行数组成的数组中的位置,及可以提取到该字符串中的数字。

理解起来有些难,大家最好自己到EXCEL中分析公式,测试,就会发现这个公式的精彩之处。

再次感谢天涯,很高明!

下面再给大家讲个小技巧

2、WORD中给文字加拼音

下面是一位群友发给我的

她可能是教师,在WORD中做了这个,然后想给文字添加拼音,想最终做成下面的效果。

首先,我们在WORD中给文字把拼音添加上去,在开始选项卡,拼音指南中添加

如下图:

然后选中刚添加了拼音的文字,剪切,粘贴为只保留文本的格式,这样拼音就会到了汉字的右边。

然后选中所有内容,复制到EXCEL中。可是复制过去后都显示在一列了。这里我们就要用到分列功能了。因为都含有空格,所以按照空格来分列。分列好了后调整格式即可。

转自:米宏Office

标签: #excel字符串转化为数字怎么弄