excel学习库

excel表格_excel函数公式大全_execl从入门到精通

任意2个字符中间的字符提取,高手如何解决

这里介绍Excel函数的经典组合公式:MID+FIND+SUBSTITUTE,3函数组合破解 1个公式提取任意2个字符中间的字符难题。

案例见上面的截图:
提取需求:
需要对A列的字符提取2个+号中间的字符,特别指定是第2个+号与第3个+号中间的字符。

公式如下:
=MID(A2,FIND("@",SUBSTITUTE(SUBSTITUTE(A2,"+","#",3),"+","@",2),1)+1,FIND("# ",SUBSTITUTE(SUBSTITUTE(A2,"+","#",3),"+","@",2),1)-FIND("@",SUBSTITUTE(SUBSTITUTE(A2,"+","# ",3),"+","@",2),1)-1)

公式解析:

提取思路是:
因为里面有2个以上的+号,无法直接对+号进行定位,所以整体思路需要先对指定的+号,进行替换之后,再判断2个符合起始位置、结束位置,以及中间的长度。

先用SUBSTITUTE函数分别对第2个+号,与第3个+号进行替换,第2个+号替换成@,第3个+号替换成#。-再用FIND函数,分别查找@号,与# 号,确定这2个符号的位置之后,就可以用MID函数提取2个符合中间的字符了。

SUBSTITUTE(A2,"+","#",3):替换第3个+号为# 号;

SUBSTITUTE(SUBSTITUTE(A2,"+","#",3),"+","@",2):替换第2个+号为@号;-FIND("@",SUBSTITUTE(SUBSTITUTE(A2,"+","# ",3),"+","@",2),1):找到替换后的@号的位置,即替换前的第2个+号的位置;

FIND("#",SUBSTITUTE(SUBSTITUTE(A2,"+","# ",3),"+","@",2),1):找到替换后的#号的位置,即替换前的第3个+号的位置;-FIND("# ",SUBSTITUTE(SUBSTITUTE(A2,"+","#",3),"+","@",2),1)-FIND("@",SUBSTITUTE(SUBSTITUTE(A2,"+","# ",3),"+","@",2),1) -1:这里就是算出#号和@号之间长度;后面减1是不包含符号本身,做了修正。

总结:
组合函数的使用技巧,就是保持基本的结构不变,中间为了解决某个问题再插入其他的函数,多个需求,就插入多个嵌套的函数。
看起来很长的公式,只要理解了基本的嵌套逻辑,你也同样可以写出看似很吓人长度的公式。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2024年12月    »
1
2345678
9101112131415
16171819202122
23242526272829
3031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
      友情链接