【Excel】不同长度的数字、英文、文字混合的数据如何分列 Pa

2018-01-07  本文已影响0人  冷漠热情

今天教大家的技巧比较少用,不过还是以防万一吧。可以收藏下

我想把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)

微信搜索公众号 @圣创杂学堂,即可获取每天更新

原创不易,转载请保留出处。

上一篇下一篇

猜你喜欢

热点阅读