• 生活小妙招免费各类生活中的小问题知识以及音乐简谱等,是你了解世界未知知识的好地方。

Excel中如何将干净混合数据中的汉字和数字分离?

十万个为什么 空空 2024-3-20 03:19:28 2次浏览

关于问题Excel 中如何将干净混合数据中的汉字和数字分离?一共有 2 位热心网友为你解答:

【1】、来自网友【ExcelWps 应用实例分享】的最佳回答:

混合数据分离出纯数字和非数字,并分别排列于两列内。

汉字或字母与数字混合图例

这个问题可以从这方面进行思考,首先把非数字的字符提取出来,数字中有小数点,可以把小数点替换掉,只保留非数字的字符。

下面通过 excel365 新函数来把数字和非数字的字符分离出来,并排成两列数据表。

先上公式:

=LET(h,TEXTSPLIT(TEXTJOIN(“,”,,MAP(A1:A3,LAMBDA(x,LET(m,ROW(1:10)-1,TEXTJOIN(“,”,,TEXTSPLIT(x,m,”.”,1)))))),,”,”),s,TEXTSPLIT(TEXTJOIN(“,”,,MAP(A1:A3,LAMBDA(y,TEXTJOIN(“,”,,TEXTSPLIT(y,,h,1))))),,”,”),HSTACK(h,s))

公式执行的结果如下图所示:

结果示图

1.MAP(A1:A3,LAMBDA(x,LET(m,ROW(1:10)-1,TEXTJOIN(“,”,,TEXTSPLIT(x,m,”.”,1))))),这个的意思是通过 MAP 函数来纯数字和小数点替换掉,保留所有的非数字字符,即把数字分离出来。这个执行的结果如下图所示:

结果示图

2.通过 LET 函数来定义第 1 变量 h,h 的变量内容为 TEXTSPLIT(TEXTJOIN(“,”,,MAP(A1:A3,LAMBDA(x,LET(m,ROW(1:10)-1,TEXTJOIN(“,”,,TEXTSPLIT(x,m,”.”,1)))))),,”,”),即 h 就是把 MAP 函数执行的结果通过 TEXTJOIN 函数连接到一起,再通过 TEXTSPLIT 函数进行拆分,最后得到非数字的字符,并排成一列数据。这个变量内容的计算表达式执行结果如下图所示:

结果示图

3.LET 函数来定义第 2 变量 s,s 的变量内容为 TEXTSPLIT(TEXTJOIN(“,”,,MAP(A1:A3,LAMBDA(y,TEXTJOIN(“,”,,TEXTSPLIT(y,,h,1))))),,”,”),即 s 就是把非数字替换掉保留纯数字字符,并把数字排成一列数据,且这个计算表达式还用到了 LET 定义的第 1 个变量 h。这个变量内容的计算表达式执行结果如下图所示:

结果示图

4.最后通过 HSTACK 函数把分离成 h,s 的两列数据横向堆叠成一个数据表,即公式执行的结果。如图所示:

结果示图

这个是 excel365 函数来拆分数字和非数字字符的操作之一,如果帮到你请别忘了点个赞!!

【2】、来自网友【精进圈】的最佳回答:

情景设定:

对于分离混合数据中的汉字和数字,我们首先设定一个比较常见的情景:当前有一列企业银行账号数据,每行数据由一串汉字和一串数字组成,汉字与数字的位数均不固定,要求将汉字和数字分别拆分至两列。

问题思考:

①对于该类问题大部分人第一反应是使用函数来完成,但这个问题明显要进行多层嵌套,涉及字符提取/判断等多种函数,逻辑复杂且适用范围窄;

②换个思路可以用 Ctrl+E 快速填充功能来实现,但这个功能只适用于比较简单的数据提取,当提取规则比较复杂时,出错概率大大增加;

③分列功能适用范围更窄明显无法解决本问题;

④VBA 对编程基础有一定要求不适用于普遍用户;

经过层层筛选,我选择使用专职于数据整理的 PowerQuery 功能来解决本问题。

Step1.将数据加载到 PowerQuery 中

全选数据区域,依次点击“数据”选项卡——“从表格”。

进入 PowerQuery 界面如下:

Step2.插入自定义列提取银行名称和银行账号

打开“视图”选项卡下面的“高级编辑器”,如图:

在高级编辑器中编写两条自定义列的 M 语句,分别用于提取银行名称和银行账号,全部代码如下:

let 源 = Excel.CurrentWorkbook(){[Name=”表 1″]}[Content], 更改的类型 = Table.TransformColumnTypes(源,{{“企业银行帐号”, type text}}),

提取银行名称= Table.AddColumn(更改的类型, “银行名称”, each Text.Remove([企业银行帐号],{“0”..”9″})), 提取银行账号 = Table.AddColumn(提取银行名称, “银行账号”, each Text.Remove([企业银行帐号],{“一”..”龢”})) in

提取银行账号

点击完成后结果如下:

Step3.将结果返回工作表

点击“关闭并上载至”,将结果以表的形式返回至工作表中。

更厉害的是,后续原始数据如果有更新,直接点击“数据”选项卡下面的“全部刷新”即可瞬间自动得到最新的提取结果。


「精进 Excel」系头条签约作者,关注我,如果任意点开三篇文章,没有你想要的知识,算我耍流氓!

以上就是关于问题【Excel 中如何将干净混合数据中的汉字和数字分离?】的全部回答,希望能对大家有所帮助,内容收集于网络仅供参考,如要实行请慎重,任何后果与本站无关!

喜欢 (0)