资源描述:
《excel将中英内容分开.docx》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、excel将中英内容分开本来是想分离中日英内容的,或者某网站的日/英日文释义,网上搜索了一番看到下面这个,于是兴冲冲地开始分解公式,最后才发现这个原理是按照中英文字符字节不相等写出来的,没法实现我想要的效果呢。不过这么长时间也不能白费,分解如下:假如A2单元格中包含中英文混合内容,可以用下面的方法来进行分离: 1.使用用公式: 在B2单元格中输入数组公式: =MID(A2,MATCH(2,LENB(MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1)),0),LENB(A2)-LEN(A2)) 公式输入完毕后按Ctrl+
2、Shift+Enter结束。 在C2单元格中输入公式: =TRIM(SUBSTITUTE(A2,B2,"")) 2.使用自定义函数: 还可以在VBA中自定义一个函数,然后在Excel表格中使用该函数进行分离。方法是:按Alt+F11,打开VBA编辑器,单击菜单“插入→模块”,在右侧的代码窗口中输入下列代码: FunctionSplitStringChs(TheString) Dimn,Chs Forn=1ToLen(TheString) IfAsc(Mid(TheString,n,1))<0Then
3、 Chs=Chs&Mid(TheString,n,1) EndIf Next SplitStringChs=Chs EndFunction FunctionSplitStringEng(TheString) Dimn,Eng Forn=1ToLen(TheString) IfAsc(Mid(TheString,n,1))>=0Then Eng=Eng&Mid(TheString,n,1) EndIf Next SplitStringEng=Trim(Eng) EndFun
4、ction 关闭VBA编辑器,在B2单元格中输入公式: =SplitStringChs(A2) 在C2单元格中输入公式: =SplitStringeng(A2)——————————————————————————————————————————————————1.截取字符串的一部分,使用mid函数假设A2为学生student,中文为学生,2字符,4字节,英文为student,7字符,7字节公式外层是mid函数,该函数格式为:MID(文本,开始位置,长度)对于公式为:MID(A2,MATCH(2,LENB(MID(A2,ROW(INDIRECT
5、("1:"&LEN(A2))),1)),0),LENB(A2)-LEN(A2))意思就是从A2这个字符串中,从黄色位置开始,提取粉色长度。2.长度=A2字节数-A2字符数长度=11-9=23.拆散字符串下面公式取出字符串中的每一粒字符:MID(A2,1,1)="学"MID(A2,2,1)="生"……MID(A2,8,1)="n"MID(A2,9,1)="t"下面公式返回的是拆散后的一串字符(数组):MID(A2,{1;2;3;4;5;6;7;8;9},1)={"学";"生";"s";"t";"u";"d";"e";"n";"t"}其中{1;2;3;4;5;6
6、;7;8;9}用ROW(INDIRECT("1:"&LEN(A2)))计算所得。在编辑栏中,请用鼠标选取MID(A1,ROW(INDIRECT("1:"&LEN(A2))),1)然后按F9可以看到上面的结果。LENB({"学";"生";"s";"t";"u";"d";"e";"n";"t"})={2;2;1;1;1;1;1;1;1}MATCH(2,{2;2;1;1;1;1;1;1;1},0)=1找到中文起始位置是在{2;2;1;1;1;1;1;1;1}里面找到与2相同的字符位置,也就是第一位4.最终MID(A2,2,2),也就得出学生二字,输出在B2中。5.
7、=TRIM(SUBSTITUTE(A2,B2,""))SUBSTITUTE(A2,B2,"")=SUBSTITUTE(text,old_text,new_text,instance_num)也就是将A2中的B2用空字符替换掉,剩下的就是英文部分了再去掉其中的空格——————————————————————————————————————————————————ROW(INDIRECT("1:"&LEN(A1)))返回{1,2,...,len(a1)}数组INDIRECT("1:"&LEN(A1))返回1至len(a1)行,row取行号,len(a1)是a1文
8、本长度。INDIRECT函数返回文本字符串所指定的引