这里介绍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是不包含符号本身,做了修正。
总结:
组合函数的使用技巧,就是保持基本的结构不变,中间为了解决某个问题再插入其他的函数,多个需求,就插入多个嵌套的函数。
看起来很长的公式,只要理解了基本的嵌套逻辑,你也同样可以写出看似很吓人长度的公式。