【Excel】不同长度的数字、英文、文字混合的数据如何分列 Pa
今天教大家的技巧比较少用,不过还是以防万一吧。可以收藏下
我想把A列混杂的数据分成中文、英文、数字:
相信大家第一时间会想到“分列”这个功能,但是分列只能应用于固定宽度或者有相同的分隔符的情况,这里的数据两个都不是。。。
其实方法有很多:
函数法、快速填充法,这两个方法要求A列的数据是有序的!例如上面的栗子,A列的数据是 中文→英文→数字。
PowerQuery法、借助Word法,这倆就不要求A列数据的顺序。
今天先说下函数法,毕竟使用者最多(也是上述方法里难度最高的。。。)
步骤1
在A列旁边增加个辅助列,命名为“中英文”。在B2输入以下公式
=LEFT(A2,MATCH(FALSE,ISERROR(1*MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1)),)-1)
Ctrl+Shift+Enter(数组公式)
步骤2
向下填充
步骤3
在C2输入以下公式
=LEFT(B2,LENB(B2)-LEN(B2))
Enter确定,然后向下填充
步骤4
D2输入公式
=RIGHT(B2,2*LEN(B2)-LENB(B2))
Enter确定,并向下填充
步骤5
E2输入公式
=RIGHT(A2,LEN(A2)-LEN(B2))
Enter确定,并向下填充
解释
最长的公式就是步骤1里的了。它只能识别数字和非数字,所以必须要添加个辅助列来区分。
=LEFT(A2,MATCH(FALSE,ISERROR(1*MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1)),)-1)
这里的 MATCH(FALSE,ISERROR(1*MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1)),) 就是查找数字的开始位置,然后用Left函数来截取数字之前的部分。
同理,如果想只要数字,可使用Right函数
=RIGHT(A2,LEN(A2)-MATCH(FALSE,ISERROR(1*MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1)),)+1)
微信搜索公众号 @圣创杂学堂,即可获取每天更新
原创不易,转载请保留出处。