在EXCEL中怎样查找字符串中第一个或最后一个数字的位置.
比如,有字符串:单元格A1内容:<<<2013.1.29大盘强势上涨,.....单元格A2内容:<<<2013.10.18创业板大盘放量大跌,.....单元格A3内容:<...
比如,有字符串:
单元格A1内容: <<<2013.1.29大盘强势上涨,.....
单元格A2内容: <<<2013.10.18创业板大盘放量大跌,.....
单元格A3内容: <<<2014.9.3中小板波澜不惊,收缩量十字星,.....
我想将日期部分提取出来, 日期前面的三位可用Ctrl+F用空位取代, 但日期后面中文不知如何去掉, 心想如果今后有类似的需要去年数字两头的字符, 得知道第一个或最后一个数字的位置, 这样就可以用left与right函数来去掉两头字符了.
或许还有其它方法, 总之,请大家多帮忙! 展开
单元格A1内容: <<<2013.1.29大盘强势上涨,.....
单元格A2内容: <<<2013.10.18创业板大盘放量大跌,.....
单元格A3内容: <<<2014.9.3中小板波澜不惊,收缩量十字星,.....
我想将日期部分提取出来, 日期前面的三位可用Ctrl+F用空位取代, 但日期后面中文不知如何去掉, 心想如果今后有类似的需要去年数字两头的字符, 得知道第一个或最后一个数字的位置, 这样就可以用left与right函数来去掉两头字符了.
或许还有其它方法, 总之,请大家多帮忙! 展开
9个回答
展开全部
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、第一个数字位置:
=MIN(FIND(ROW($1:$10)-1,A1&"0123456789"))
2、最后一个数字位置:
=MAX(IF(ISNUMBER(--MID(A1,ROW($1:$50),1)),ROW($1:$50)))
以上两个公式都是数组公式,按三键CTRL+SHIFT+回车,完成公式。
=MIN(FIND(ROW($1:$10)-1,A1&"0123456789"))
2、最后一个数字位置:
=MAX(IF(ISNUMBER(--MID(A1,ROW($1:$50),1)),ROW($1:$50)))
以上两个公式都是数组公式,按三键CTRL+SHIFT+回车,完成公式。
追问
我怎么就看不懂数组公式, 可以看懂非数组的函数, 你上面的两个数组, 我拼在一起刚好可以提取里面的日期, 通用性很强, 可以解决日后很多类似的需求, 下面的答案也有很多优秀的, 但还你最了解我的需求,所以我决定把分赏给你.
我是不是还有什么没有接触到, 为什么一看到数组就完全不能理解, 能给我指个方向吗, 怎么看懂数组!
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
=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将数字取出来。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
=MIDB(A1,4,LEN(MIDB(A1,4,14))*2-LENB(MIDB(A1,4,14)))
里面的14指的是字符数,只要大于等于10 包含完日期的字符位数即可
里面的14指的是字符数,只要大于等于10 包含完日期的字符位数即可
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询