乔山办公网我们一直在努力
您的位置:乔山办公网 > excel表格制作 > 如何用<em>excel</em>函数<em>提取</em>以下单元格中

如何用<em>excel</em>函数<em>提取</em>以下单元格中

作者:乔山办公网日期:

返回目录:excel表格制作


用Mid函数可以做到:
定义:Mid是Visual Basic和Microsoft Excel中的一个字符串函数,作用是从一个字符串中截取出指定数量的字符。
格式:MID(text, start_num, num_chars)
参数:
text,必选。变体(字符串)表达式,要被截取的字符。如果该参数为Null,则函数返回Null。
start_num,必选。数值表达式,从左起第几位开始截取。
num_chars,必选。变体(数值)表达式,从参数指定的位置开始,要向右截取的长度。如果省略,将指定为从Start参数位置开始向右到字符串结尾的所有字符数。
示例:假设A1内容为ABC123。
1、=MID(A1,1,5),结果:ABC12。
2、=MID(A1,3,5),结果:C123。

如果文字和数字是混合着的,且数字位数不统一,那么使用LEFT、RIGHT、MID函数的适用性将大大降低。

B2单元格输入以下公式,然后向下填充公式

=-LOOKUP(,-MIDB(A2,SEARCHB("?",A2),ROW($1:$15)))

公式表示:从A2单元格中,查找半个字节所在的位置,作为MIDB的截取起始位置,截出一组字符串;因前面加上了负号,LOOKUP从所有负数中找到最小的负数,并通过LOOKUP前的负号转换为正值,即为从单元格中分离出的数字。

详见附图及公式求值过程


用VBA正则吧

自定义函数如下(样本文件见件):

Function mm(ByVal mStr As String) As String
Dim regXp As Object
Set regXp = CreateObject("vbScript.regExp")
With regXp
    .Global = True
    .Pattern = "[\u4e00-\u9fa5]"
    mm = .Replace(mStr, "")
End With
End Function




还算比较有规律,提zd取数据的前面字数相同,这就容易一些了,如图

B1=LEFT(REPLACE(A1,1,12,),LEN(REPLACE(A1,1,12,))*2-LENB(REPLACE(A1,1,12,))-2)

相关阅读

关键词不能为空
极力推荐

ppt怎么做_excel表格制作_office365_word文档_365办公网