è§æªå¾
B2è¾å ¥=IF(LENB(LEFT(SUBSTITUTE(A2,C2,)))=1,RIGHT(SUBSTITUTE(A2,C2,),LENB(SUBSTITUTE(A2,C2,))-LEN(SUBSTITUTE(A2,C2,))),LEFTB(SUBSTITUTE(A2,C2,),SEARCHB("?",SUBSTITUTE(A2,C2,))-1))
C2è¾å ¥
=MAX(--TEXT(MID(A2,ROW($1:$99),COLUMN(A:Z)),"0;0;0;!0"))
æ°ç»å ¬å¼ï¼å æä½CTRL+SHIFT,æåå车
D2è¾å ¥
=SUBSTITUTE(SUBSTITUTE(A2,C2,),B2,)
3ä¸ªå ¬å¼ä¸æå¤å¶å¡«å
你自己都说了无规律,怎么能有解呢?
之所以叫“公式”,是因为它本身是一个规律,这种规律叫逻辑规律,只有“有逻辑规律”的问题才能用“逻辑公式”解决。
能说的上规律就是数据里面有三种类型,数字、文本、字母,我相信很多人都碰到过这种数据,少的还可以手动,但是多的话那就是一个很大的工程了,所以才问大神可不可以用公式来截取啊
追答这个规律用公式做不太现实,要判断它们的先后顺序公式就很长,再根据不同情况出具体提取公式公式就没法看了,使用编程代码还比较现实。
简单模拟了两行数据,如图,按你的截图内容,汉字、数字都是独立连续的,如果不连续,那就只能去找VBA了。且假设数字的第1位不会出现0,如果有出现0的,那公式又要复杂得多了。
先提取汉字:
B2=MID(A2,MATCH(,0/(CODE(MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1))>125),),LENB(A2)-LEN(A2))
同时按Ctrl+Shift+Enter三键输入数组公式
再提取数字:
C2=MAX(--TEXT(MID(SUBSTITUTE(A2,B2,""),MIN(FIND(ROW($1:$10)-1,SUBSTITUTE(A2,B2,"")&5^19)),ROW($1:$15)),"0;;;!0"))
两样是数组公式。
最后提取字母:
D2=SUBSTITUTE(SUBSTITUTE(A2,B2,""),C2,"")
D2是普通公式。
PS:截图要像上面这样,使人能看到工作表的结构,如果也你的截图一样,没有上面的列标,左边的行号,能帮助理解公式吗?