用公式截取不规则数据中的字母或者数字或文字

数据的文本和数据基本都是没有规律的,用公式能否提取数据中的文字或英文或者是数字,这个问题困扰我很久,烦请各位大神帮忙
有会的人吗?用代码也可以

见截图

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个公式下拉复制填充

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-10-26

第一步:先替换掉文字和字母,只留数字;

打开一个新word文档,把表格的内容粘贴到文档中,按Ctrl+H替换,查找内容输入[!0-9],勾选使用通配符,点全部替换,就只剩下数字了,再粘贴回表格;

第二步:替换掉文本和数字,只留字母,在查找内容处输入[!A-Z],其他同第一步

第三步:在J2输入=SUBSTITUTE(SUBSTITUTE(I2,K2,""),L2,""),向下填充

第2个回答  2018-10-26

    你自己都说了无规律,怎么能有解呢?

    之所以叫“公式”,是因为它本身是一个规律,这种规律叫逻辑规律,只有“有逻辑规律”的问题才能用“逻辑公式”解决。

追问

能说的上规律就是数据里面有三种类型,数字、文本、字母,我相信很多人都碰到过这种数据,少的还可以手动,但是多的话那就是一个很大的工程了,所以才问大神可不可以用公式来截取啊

追答

这个规律用公式做不太现实,要判断它们的先后顺序公式就很长,再根据不同情况出具体提取公式公式就没法看了,使用编程代码还比较现实。

第3个回答  2018-10-26
请把你这个工作表中的数据复制后,粘贴出来,好用你的数据粘贴进Excel工作表中进行模拟。要输入这么内容太花时间了。
另外,截图要带行号和列标标,这样编写的公式你复制后可直接用于你的工作表。至少补充说明“数据”这个标题在哪个单元格,也好推算数据这一列是在哪个列,从哪行开始。追答

简单模拟了两行数据,如图,按你的截图内容,汉字、数字都是独立连续的,如果不连续,那就只能去找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:截图要像上面这样,使人能看到工作表的结构,如果也你的截图一样,没有上面的列标,左边的行号,能帮助理解公式吗?

第4个回答  2018-10-26
B2=MID(A2,MATCH(1=1,MID(A2,COLUMN(A:Z),1)>"Z",),LENB(A2)-LEN(A2))
C2=MAX(--TEXT(MID(A2,ROW($1:$99),COLUMN(A:Z)),"0;;;!0"))
D2=SUBSTITUTE(SUBSTITUTE(A2,B2,),C2,)
B2和C2为数组公式,即以CTRL+SHIFT+ENTER三键结束输入公式。
相似回答