excel中,对一列数据中某一字段进行排序的问题

来源:百度知道 编辑:UC知道 时间:2024/09/23 07:30:14
此一列语句,每行的格式都是:
#tr {任^意!格{式|任}~意句} {{任}意{格{式;任}意}句;任@(意格式) 任意句} {需排序字段} 571
以#tr开头,中间三个大括号,然后是一个数字,这五个部分间有空格间隔,

注意:前两个大括号内,还可能随机嵌套大括号及其他各种符号,因此,从左往右搜索"{"会很不精确,但第三个大括号内,只会一个出现英文单词或为空。

现需要以第三个大括号里的内容,对此一列数据进行排序,请问,该用什么公式对第三个大括号的内容进行提取。

大概的思路就是,对字符串从右向左搜索到的第一个"{" 到自右往左的第一个"}" 或字符串最后间的内容进行提取,关键就是这个自右向左的搜索。

谢谢回答,万分感谢!

点b1,插入名称-定义 x
=MAX(IF(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1)="{",ROW(INDIRECT("1:"&LEN(A1))),0))

添加名称 y
=MAX(IF(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1)="}",ROW(INDIRECT("1:"&LEN(A1))),0))

b1 =mid(a1,x+1,y-x-1) 【定义名称是为了简化这个公式,也可以用上面的公式替代这里的x和y】

=MID(A1,FIND("} {",A1,FIND("} {",A1) + 1)+3,FIND("}",A1,FIND("} {",A1,FIND("} {",A1) + 1)+3)-FIND("} {",A1,FIND("} {",A1) + 1)-3)

用上面的公式试试,公式有点长,在我这是通过的

难,怎么这么难!,期待高手!