2023-02-13 03:17来源:m.sf1369.com作者:宇宇
先说思路,这个问题,就是在文本中找到特定位置的字符。位置怎么确定?主要靠星号、括号确定。从易到难一个个解决。1、“单位”最容易。就是字符串的倒数第二个字符。公式:MID(A1,LEN(A1)-1,1)这个非常简单,不赘述。
2、“长”也简单。不管它是三位数还是两位数,反正是第一个*号之前的字符。公式:LEFT(A1,FIND("*",A1,1)-1)非常简单,不赘述。
3、“件数”也容易,和“长”的思路一样,“件数”在第一个左括号后面。但是最后两个字符不要。公式:MID(A1,FIND("(",A1,1)+1,LEN(A1)-FIND("(",A1,1)-2)解释一下,第一层函数的意思很明白,MID(【A1】,【第一个左括号后面第一位开始算】,【【(】和【件)】之间的字符数】)。其中,【(】和【件)】之间的字符数计算方法:字符串总长度-左括号及它左边的字符数-2。
剩下的宽、高,思路与“件数”相仿。宽就是两个*之间的字符,高就是第二个*和左括号之间的字符。这里面的关键就是,第二个*,位置如何确定?很简单,在第一个*后面继续找就行了。第一个*位置的公式:FIND("*",A1,1)第二个*位置的公式:FIND("*",A1,FIND("*",A1,1)+1)
所以看得出:
4、“宽”的公式:MID(A1,FIND("*",A1,1)+1,FIND("*",A1,FIND("*",A1,1)+1)-FIND("*",A1,1)-1)
5、“高”的公式:MID(A1,FIND("*",A1,FIND("*",A1,1)+1)+1,FIND("(",A1,1)-FIND("*",A1,FIND("*",A1,1)+1)-1)
剩下的是圆形件长宽按直径算?思路方法一样的。如果要判断是方的还是圆的,加个if语句就行,不再赘述了。
验证一下结果:
1、从最左边起取字符
=left(源数据格,提取的字符数),=left(E2,2)
表述为:从单元格A3的最左边起,提取2个字符。
2、从最右边起取字符
=right(源数据格,提取的字符数)。=right(E2,2)
表述为:从E2单元格最右边起,提取2个字符
3、从数据中间提取几个字符=
mid(E2,1,9)
表述为:提取单元格E2中第一位起后面9位。
=mid(sheet1! E2,1,9)
表述为:提取sheet1表的单元格E2中第一位起后面9位
4、先从左取字符,再从右取字符
=RIGHT(LEFT(E2,5),3)
表述为:首先从E2单元格第一个字符从左往右取5个字符,然后再对取出来的5个字符从右向左取3个字符。
5、去掉字符前面的几个字符
=RIGHT(E2,LEN(E2)-2)
表述为:从单元格E2字符的右边起,提起所有的字符数,去掉后面两个字符。LEN表示返回字符串中的字符数。
6、去掉字符后面的几个字符
=LEFT(E2,LEN(E2)-2)
表述为:从单元格E2字符的左边起,提起所有的字符数,去掉后面两个字符
EXCEL中截取字符串常用函数有:left函数,right函数和mid函数
left函数语法:left(text,num_chars),从左侧开始截取部分字符串,也就是从前往后截取想要的字符串;
right函数语法:right(text,num_chars),从右侧开始截取部分字符串,也就是从后往前截取想要的字符串;
其中:text表示要截取的字符串,num_chars表示要截取的字符数
mid函数语法:mid(text,start_num,num_chars),从中间截取部分字符串
其中:text表示要截取的字符串,start_num表示从第几位字符串开始截取,num_chars表示要截取的字符数。
例:
首先在顶部工具栏选择“公式”,点击“插入函数”;然后在“查找函数”输入框里输入“left”,选择“确定”;接着在“字符串”文本框里输入需要提取字符的单元格名称,“字符个数”文本框里输入需要提取的个数;最后点击“确定”即可。
left函数作用是用来对单元格内容进行提取,语法结构是LEFT(text, num_chars)
ID
1、LEFT函数:
用法:LEFT(要提取字符所在单元格,从左侧开始提取的个数)
例如:=LEFT(A1,2) 意思是从A1单元格提取前两个字符。
2、RIGHT函数:
用法:RIGHT(要提取字符所在单元格,从右侧开始提取的个数)
例如:=RIGHT(A1,2) 意思是从A1单元格提取最后两个字符。
3、MID函数:
用法:MID(要提取字符所在单元格,开始位置,提取个数)
例如:=MID(A1,2,2) 意思是从A1单元格提的第二个单元格开始,提取两个字符,也就提取A1单元格第2个和第3个字符。
注:用MID函数,也可以替代前两个函数,比如:=MID(A1,1,2)与=LEFT(A1,2)的结果是一样的,再比如:=MID(A1,LEN(A1)-2+1,2)与=RIGHT(A1,2)的结果是一样的只是这里用到LEN函数,其作用是取得单元格字符串的长度。
4、提取后的字符合并:
字符合并要用到连接符号:&
比如:=LEFT(A1,2)&RIGHT(A1,2) 意思是把A1单元格的前两个和最后两个字符,提取出来组成一个新的字符。
下面给出两种方法:
方法1. 如果会用vba的话可以考虑自定义函数:
按alt+f11唤出vbe编辑窗口,插入-模块,将下方代码贴入:
Public Function Zstr(str As String, tj As String) With CreateObject("Vbscript.Regexp") .Pattern = "^(\d+).*" & tj & ".*" .Global = True .MultiLine = True .ignorecase = False If .test(str) Then Set mh = .Execute(str) Zstr = mh(0).submatches(0) Else Zstr = CVErr(xlErrNA) End If End WithEnd Function回到工作表中
在c1里输入如下公式:=zstr(A1,B1)
方法2. 公式(略长):
=--LEFT(TRIM(MID(SUBSTITUTE(A1,CHAR(10),REPT(" ",LEN(A1)+200)),MAX(1,FIND(B1,SUBSTITUTE(A1,CHAR(10),REPT(" ",LEN(A1)+200)))-200),FIND(B1,SUBSTITUTE(A1,CHAR(10),REPT(" ",LEN(A1)+200))))),FIND("=",TRIM(MID(SUBSTITUTE(A1,CHAR(10),REPT(" ",LEN(A1)+200)),MAX(1,FIND(B1,SUBSTITUTE(A1,CHAR(10),REPT(" ",LEN(A1)+200)))-200),FIND(B1,SUBSTITUTE(A1,CHAR(10),REPT(" ",LEN(A1)+200))))))-1)
假设是A列
i=range("a65536").end(xlup).row()
msgbox range("A" & i).value
msgbox range("A" & i-1).value
如果ID值都是4位数的话,那么用以下代码就可以了:
Sub www() Dim y% For y = 1 To Cells(1, Columns.Count).End(xlToLeft).Column Cells(2, y) = Right(Cells(1, y), 4) Next yEnd Sub
excel提取单元格内某字符后面一位的数据全部提取出来 用vba实现 - : C1=IF(ISERROR(FIND("张三",A1)),"",MID(A1,FIND("张三",A1)+2,1))&IF(OR(ISERROR(FIND("张三",A1)),ISERROR(FIND("张三",B1))),"","+")&IF(ISERROR(FIND("张三",B1)),"",MID(B1,FIND("张三",B1)+2,1)) 然后下拉 这个可以实现提取A和B列中第一个张三后面的数字
EXCEL怎么提取单元格内某字符后面的所有文字 - : =MID(A1,FIND("房",A1)+1,LEN(A1)-FIND("房",A1))
EXCEL中如何提取单元格中最后一个字符 - : 方案a:复制到记事本中,再从记事本复制到word中.设置段落格式为:右对齐.将插入点置于最后一个字符右侧,按住alt不放,压住鼠标左键,选中要删除的区域,删除.然后复制回excel 方案b:假设数据在a列,则到一个空列,输入=left(a1,len(a1)-1) 向下填充公式,就得到你要的结果了.
excel怎样获取单元格中特定字符前面或者后面的内容 - : 方法一:用函数=MID(A1,FIND("|",A1)+1,99),参数你根据自己的事情情况调整... 方法二:用查找替换功能.先把这列复制两列,然后以列为单位去查找,查找*|,替换,则可得到|后面的字符,查找|*替换,则可得到|前面的字符
EXCEL怎么提取单元格内某字符后面的所有文字: 假设 ...房顶上...这个在a1单元格,现在在a2单元格提取, 在a2单元格输入下列公式: =right(a1,len(a1)-find("房",a1)+1)
在EXCEL表格里,怎么提取某一单元格中的一部分文字 - : 用mid(),比如:从单元格a1(内容为“在excel表格里”)提取“excel”,可以用公式:=mid(a1,2,5),表示在a1中,以第2个字符开始的5个字符组成的字符串.
excel中提取单元格内指定最后一个符号前的内容 - : 假设字符数不超过100个,用:=LEFT(A1,LOOKUP(1,0/(MID(A1,ROW($1:$100),1)="#"),ROW($1:$100))-1)
excel中如何提取某个字符前面、后面的字符,长度不一、每个单元格都有这个字符: 前面的,=LEFT(A1,FIND(”@”,A1)-1),@就是那个字符.后面的,=MID(A1,FIND(”@”,A1)+1,99)
EXCEL 单元格中有两个字符,如何提取其中一个字符后面的内容: 如果是提取最后的数字,可用下面公式:=LOOKUP(9^9,--RIGHT(A1,ROW(1:99)))也可用下面公式:=--MID(A1,FIND("x",SUBSTITUTE(A1,"x","",1))+2,99)数字99可以换成适当的数,如12.如果提取文本,可用第二个公式,将前面的“--”去掉.
如何用最简单的公式截取Excel单元格内最后一个空字符后面的所有信息. - : =TRIM(RIGHT(SUBSTITUTE(A1," ",REPT(" ",100),LEN(A1)-LEN(SUBSTITUTE(A1," ",))),100))
1打开excel表格,点击一个需要提取到的单元格,在顶部的fx右侧输入=MID,双击fix MID
2选择第一个需要提取的单元格所在位置,逗号,从第几个字开始,逗号,需要提取几个字,输入完毕,按下enter或者fx左侧的✓
3如图所示,已经把第一个单元格提取出来了
4把鼠标指针放在单元格右下角,摁住鼠标左键
5向下拉,如图所示,已经完成提取单元格的部分内容了。
前n个字符,=LEFT(A1,5),即前面的5个字符。任意n个字符,=mid(a1,2.4),即第2到第5个字符。后n个字符,RIGHT(A1,3),即后3个字符。
原来前面还带中文的,字母也是相同的3个,早说清楚就简单多了。=RIGHT(A1,LEN(A1)-(FIND("CBD",A1)+2))
选中"文本"这一列-----数据----分列----分隔符号----勾选"其他"写入"-"号----完成