excel如何取出单元格最右边括号内的字符串?

excel如何取出单元格最右边括号内的字符串?(单元格字符串长度不等,各个单元格有多个括号,取出最右边的括号内的字符串,不包括括号本身)如:A1单元格内容(第一次)*永远... excel如何取出单元格最右边括号内的字符串?(单元格字符串长度不等,各个单元格有多个括号,取出最右边的括号内的字符串,不包括括号本身)

如:
A1单元格内容(第一次) *永远取出括号内的字符串:第一次*
A2单元格内容(第一次)(第二次) *永远取出括号内的字符串:第二次*
A3单元格内容(第一次)(第二次)(第三次)*永远取出括号内的字符串:第三次*

以此类推!!

不知哪位高人能给予指点!! 多谢了!!!
展开
 我来答
loveruby521
2009-05-06 · TA获得超过3.6万个赞
知道大有可为答主
回答量:2.1万
采纳率:33%
帮助的人:6379万
展开全部
b1输入
=MID(A1,MAX(IF(MID(A1,ROW($1:$100),1)="(",ROW($1:$100),0))+1,MAX(IF(MID(A1,ROW($1:$100),1)=")",ROW($1:$100),0))-MAX(IF(MID(A1,ROW($1:$100),1)="(",ROW($1:$100),0))-1)

输入完按shift+ctrl+回车结束
两边出现大括号才对
然后向下拖

如果括号内的文字长度固定为3可以简化
=MID(A1,MAX(IF(MID(A1,ROW($1:$100),1)="(",ROW(1:100),0))+1,3)
输入完按shift+ctrl+回车结束
同意所有条款
2009-05-06 · TA获得超过3293个赞
知道小有建树答主
回答量:1147
采纳率:100%
帮助的人:459万
展开全部
假如你的数据在工作表sheet1的A列。
1、摁下组合键ALT + F11,进入VBA编辑器。
2、双击左上角工程资源管理器里面的sheet1,在右侧的代码区粘贴代码如下

Sub 获取左后一个括号内数据()
For i = 1 To [A65536].End(xlUp).Row
str1 = Cells(i, 1)
str1 = RegExpTest("\(.*\)", str1)
If Len(str1) > 1 Then
s2 = "(" & Split(str1, "(")(UBound(Split(str1, "(")))
End If
Cells(i, 2) = s2
s2 = 0
Next
End Sub

Function RegExpTest(patrn, strng)
Dim regEx, Match, Matches ' Create variable.
Set regEx = CreateObject("VBSCRIPT.REGEXP") ' Create a regular expression.
regEx.Pattern = patrn ' Set pattern.
regEx.IgnoreCase = True ' Set case insensitivity.
regEx.Global = True ' Set global applicability.
Set Matches = regEx.Execute(strng) ' Execute search.
For Each Match In Matches ' Iterate Matches collection.
retstr = retstr & Match.Value
Next
RegExpTest = retstr
End Function

3、光标定位到“ Sub 获取左后一个括号内数据()”后面。摁下F5运行程序。
OK
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
pwaters
2009-05-06 · TA获得超过2502个赞
知道小有建树答主
回答量:1571
采纳率:100%
帮助的人:598万
展开全部
b1输入:
=MID(A1,MAX(IF(MID($A1,ROW($A$1:$A$256),1)="(",ROW($A$1:$A$256),0))+1,MAX(IF(MID($A1,ROW($A$1:$A$256),1)=")",ROW($A$1:$A$256),0))-MAX(IF(MID($A1,ROW($A$1:$A$256),1)="(",ROW($A$1:$A$256),0))-1)
同时按 ctrl+shift+enter
下拉公式。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
陶萌圭雨伯
2019-04-29 · TA获得超过3894个赞
知道大有可为答主
回答量:3147
采纳率:33%
帮助的人:177万
展开全部
sub
test()
dim
usecount
as
integer
with
activesheet
for
n
=
1
to
.usedrange.cells.count
for
m
=
1
to
len(.usedrange.cells(n))
usecount
=
m
if
mid(.usedrange.cells(n),
m,
1)
=
"["
and
mid(.usedrange.cells(n),
m
+
2,
1)
=
"]"
then
.usedrange.cells(n).characters(start:=m,
length:=3).font.color
=
vbgreen:
usecount
=
m
+
2
if
mid(.usedrange.cells(n),
m,
1)
=
"["
and
mid(.usedrange.cells(n),
m
+
3,
1)
=
"]"
then
.usedrange.cells(n).characters(start:=m,
length:=3).font.color
=
vbgreen:
usecount
=
m
+
3
m
=
usecount
next
m
next
n
end
with
end
sub
我针对你上面括号中有一个字或两个字,进行修改的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tomato9931
2009-05-06 · TA获得超过705个赞
知道小有建树答主
回答量:390
采纳率:50%
帮助的人:190万
展开全部
B1==MID(A1,FIND("@",SUBSTITUTE(A1,"(","@",LEN(A1)-LEN(SUBSTITUTE(A1,"(",""))))+1,FIND("@@",SUBSTITUTE(A1,")","@@",LEN(A1)-LEN(SUBSTITUTE(A1,")",""))))-FIND("@",SUBSTITUTE(A1,"(","@",LEN(A1)-LEN(SUBSTITUTE(A1,"(",""))))-1)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式