• 个性签名
  • 格言大全
  • 名言大全
  • 笑话大全
  • 知识问答
  • 生活家居
  • 星座运势
  • 宝宝起名
  • 休闲爱好
  • 百科大全
  • Excel中如何将干净混合数据中的汉字和数字分离,excel中文字和数字混合如何批量提取只保留数字

    栏目: 知识 日期:2023-07-31 08:01:55 浏览量(来源:小华

    [摘要]Excel中如何将干净混合数据中的汉字和数字分离?混合数据分离出纯数字和非数字,并分别排列于两列内。汉字或字母与数字混合图例这个问题可以从这方面进行思考,首先把...

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

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

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

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

    下面通过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函数来拆分数字和非数字字符的操作之一,如果帮到你请别忘了点个赞!!

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

    情景设定:

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

    问题思考:

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

    ②换个思路可以用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」系头条签约作者,关注我,如果任意点开三篇文章,没有你想要的知识,算我耍流氓!

    上一页12下一页