在EXCEL中怎样查找字符串中第一个或最后一个数字的位置.

比如,有字符串:
单元格A1内容: <<<2013.1.29大盘强势上涨,.....
单元格A2内容: <<<2013.10.18创业板大盘放量大跌,.....
单元格A3内容: <<<2014.9.3中小板波澜不惊,收缩量十字星,.....
我想将日期部分提取出来, 日期前面的三位可用Ctrl+F用空位取代, 但日期后面中文不知如何去掉, 心想如果今后有类似的需要去年数字两头的字符, 得知道第一个或最后一个数字的位置, 这样就可以用left与right函数来去掉两头字符了.
或许还有其它方法, 总之,请大家多帮忙!

1、首先使用Excel打开任意一个空白表格文件。

2、再在表格单元格A1输入一个带有数字的随机字符串,在A2单元格输入“第一个数字的位置:”,A3单元格输入“最后一个数字的位置:”。

3、在B2单元格输入:“=MIN(FIND(ROW(1:10)-1,A1&5^19))”。

4、按下CTRL+Shift+enter组合键,即可在B2单元格输出字符串第一个数字的位置。

5、在B3单元格输入:“=LOOKUP(1,0/MID(A1,ROW(1:99),1),ROW(1:99))”。

6、按下CTRL+Shift+enter组合键,即可在B3单元格输出字符串最后一个数字的位置。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-29

使用LOOKUP、min、Find等函数综合处理。


Excel版本参考:2010

1、提取数值开始的位置,选中B2输入公式:=MIN(FIND(ROW(1:10)-1,A1&5^19)),按下CTRL+Shift+enter组合键;

2、最后一个数字的位置,选中B2输入公式:=LOOKUP(1,0/MID(A1,ROW(1:99),1),ROW(1:99)),按下CTRL+Shift+enter组合键;

第2个回答  推荐于2017-10-10
1、第一个数字位置:
=MIN(FIND(ROW($1:$10)-1,A1&"0123456789"))
2、最后一个数字位置:
=MAX(IF(ISNUMBER(--MID(A1,ROW($1:$50),1)),ROW($1:$50)))

以上两个公式都是数组公式,按三键CTRL+SHIFT+回车,完成公式。追问

我怎么就看不懂数组公式, 可以看懂非数组的函数, 你上面的两个数组, 我拼在一起刚好可以提取里面的日期, 通用性很强, 可以解决日后很多类似的需求, 下面的答案也有很多优秀的, 但还你最了解我的需求,所以我决定把分赏给你.
我是不是还有什么没有接触到, 为什么一看到数组就完全不能理解, 能给我指个方向吗, 怎么看懂数组!

本回答被提问者采纳
第3个回答  2014-10-11
=MID(A1,SMALL(IF(ISERROR(--MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1)),"",ROW(INDIRECT("1:"&LEN(A1)))),1),MAX(IF(ISERROR(--MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1)),"",ROW(INDIRECT("1:"&LEN(A1)))))-SMALL(IF(ISERROR(--MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1)),"",ROW(INDIRECT("1:"&LEN(A1)))),1)+1),按ENTER+SHIFT+CRTL。数组公式,日期前后都不能出现数字此公式才正确。追问

这么多答案我都能看懂, 且都试了, 唯有你的准确率最高, 可以容许日期后面紧挨标点符号或英文,其它的答案都不行.
但唯有你的数组公式我就看不懂了, 请问我是不是有哪里还没有接触到, 能教教我怎么看懂数组公式吗? 一直困绕好久了? 好伤心哦!

追答

思路:先用MID将A1的字符一个一个的分出来,然后判断是否是数字,是数字的话返回在字符串的位置,然后用SMALL取出最小位置,MAX最大位置,也就是数字取值范围,然后再用MID将数字取出来。

第4个回答  2014-10-11
=MIDB(A1,4,LEN(MIDB(A1,4,14))*2-LENB(MIDB(A1,4,14)))

里面的14指的是字符数,只要大于等于10 包含完日期的字符位数即可
相似回答