
如何提取EXCEL一列的第一个字母+数字到另一列
说明:这一列的内容是没有规律的,随机填写,但是我要汇总字母+数字(一般为三个数字)
如:乘坐A123号去,有90公里路途。
我需要将类似于A123的内容,批量提取到另一列。 展开
EXCEL中要从单元格中提取内容,可使用MID函数,该函数具有三个参数:第一参数为要从取字符的字符串,第二参数是开始位置,第三参数是取字符长度,第一参数已知,现在需要知道第二、三参数;
从下图可以看到,EXCEL中0~9、A~Z、a~z等字符在标准字符集中的代码在48~122范围内;
利用此代码范围,查找出该范围内第一个代码出现的位置,即得到MID函数中第二参数:=MIN(IF(ISERROR(FIND(CHAR(ROW(48:122)),A1)),200,FIND(CHAR(ROW(48:122)),A1))),数组公式,即同时按Ctrl+Shift+Enter结束公式编辑,会自动生成一对{};
利用汉字是双字节字符、数字和字母为单字节字符的特性,利用LEN、LENB单双字节字符长度函数,可得知第三参数的长度:=2*LEN(A1)-LENB(A1);
所有参数都有了,即可利用MID函数,将非汉字部分提取出来:=MID(A1,MIN(IF(ISERROR(FIND(CHAR(ROW(48:122)),A1)),200,FIND(CHAR(ROW(48:122)),A1))),2*LEN(A1)-LENB(A1)),数组公式,即同时按Ctrl+Shift+Enter结束公式编辑,会自动生成一对{},下拉。
如果A1格位 SE46454335
那么输入公式的格显示 S335
=MID(A2,MATCH(91,CODE(MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1)),-1)+1,1)&LOOKUP(10^99,--MID(A2,MATCH(91,CODE(MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1)),-1)+2,ROW($1:$10)))
同时按下ctrl+shift+enter输入数组公式,再用自动填充柄向下复制到B100。如果不能提取所有符合要求的字符,请你将所有的数据可能出现的类型都说明一下(比如说字母是否都为大写,有几个,字母后面是否紧跟着数字),我再视情况给你改。
另外再举几个例子。