如何在Excel单元中删除 /拆分文本和数字
本教程展示了使用内置功能和自定义VBA函数在Excel单元格中分离文本和数字的几种方法。您将学习如何在删除文本时提取数字,在丢弃数字时隔离文本,最后将数据分为两个不同的列。
假设您的数据有一个列,文本和数字被混合在一起。对于一致的数据, LEFT
, RIGHT
和MID
的简单功能可能就足够了。但是,实际数据通常不一致,在文本之前,之后或文本中出现数字。下面的解决方案解决了这种复杂性。
删除文字以保持数字(Excel 365,2021,2019):
Microsoft Excel 2019推出了TEXTJOIN
功能,这简化了此任务。低于以下的公式利用TEXTJOIN
, MID
, ROW
, INDIRECT
, SEQUENCE
和IFERROR
来实现这一目标。
对于Excel 365和2021:
=TEXTJOIN("",TRUE,IFERROR(MID(A2,SEQUENCE(LEN(A2)),1)*1,""))
对于Excel 365-2019:
=TEXTJOIN("",TRUE,IFERROR(MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1)*1,""))
(在Excel 2019中,这需要Ctrl Shift Enter进行数组公式条目。在Dynamic Array Excel中,简单的输入就足够了。)
该公式通过每个字符迭代,乘以1来转换数字。非数字字符成为错误,由IFERROR
处理,留下空字符串。然后, TEXTJOIN
将剩余的数字串联。
自定义VBA功能(所有Excel版本):
对于较旧的Excel版本或更简单的方法,自定义VBA功能提供了简化的解决方案。提供了两个版本:
VBA代码1(字符字符):
函数removeText(str作为字符串) DIM SRES作为字符串 SRES =“” 对于i = 1到len(str) 如果是命名的(中间(str,i,1)),则SRES = SRES = SRES和MID(Str,i,1) 下一个我 removetext = sres 结束功能
VBA代码2(正则表达式):
函数removeText(str作为字符串)为字符串 使用CreateObject(“ vbscript.regexp”) .global = true .pattern =“ [^0-9]” removetext = .replace(str,“”) 以 结束功能
将这些功能与=RemoveText(A2)
一起使用。代码2(使用正则表达式)通常在大型数据集上表现更好。
删除数字以保留文本(Excel 365,2021,2019):
类似的公式可以在删除数字时提取文本。同样,使用TEXTJOIN
, MID
, ROW
, INDIRECT
, SEQUENCE
, IFERROR
和ISERROR
:
对于Excel 365和2021:
=TRIM(TEXTJOIN("",TRUE,IF(ISERROR(MID(A2,SEQUENCE(LEN(A2)),1)*1),MID(A2,SEQUENCE(LEN(A2)),1),"")))
对于Excel 365-2019:
=TRIM(TEXTJOIN("",TRUE,IF(ISERROR(MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1)*1),MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1),"")))
TRIM
功能删除了前导/尾随空间。
自定义VBA功能用于删除数字(所有Excel版本):
与以前的VBA功能类似,这里有两个版本可以删除数字并保留文本:
VBA代码1(字符字符):
功能去除量(str作为字符串) DIM SRES作为字符串 SRES =“” 对于i = 1到len(str) 如果不是的,则没有(中间(str,i,1)),则SRES = SRES = SRES和MID(Str,i,1) 下一个我 removenumbers = SRES 结束功能
VBA代码2(正则表达式):
功能删除量(str作为字符串)为字符串 使用CreateObject(“ vbscript.regexp”) .global = true .pattern =“ [0-9]” removenumbers = .replace(str,“”) 以 结束功能
将它们与=TRIM(RemoveNumbers(A2))
一起使用。
将文本和数字分成单独的列:
单个自定义VBA功能可以同时处理文本和数字提取:
VBA代码1(字符字符):
函数slaptextnumbers(str作为字符串,is_remove_text为布尔值)为字符串 Dim Snum,Stext,Schar作为字符串 num = stext =“” 对于i = 1到len(str) schar = mid(str,i,1) 如果是iSnumeric(schar),则num = shum&schar else sext = sext&schar 下一个我 如果是is_remove_text 结束功能
VBA代码2(正则表达式):
函数slaptextnumbers(str作为字符串,is_remove_text为布尔值)为字符串 使用CreateObject(“ vbscript.regexp”) .global = true 如果是is_remove_text,则.pattern =“ [^0-9]” else .pattern =“ [0-9]” splittextnumbers = .replace(str,“”) 以 结束功能
use =SplitTextNumbers(A2,TRUE)
保留数字, =TRIM(SplitTextNumbers(A2,FALSE))
保留文本。
使用专业工具:
如果您喜欢更视觉和用户友好的方法,请考虑使用专用的Excel加载项来删除角色。本教程提到了具有“删除字符”功能的“终极套件”加载项。
该综合指南提供了多种解决方案,可满足不同的Excel版本和用户喜好。请记住,根据需要调整细胞引用的特定数据。
以上是如何在Excel单元中删除 /拆分文本和数字的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

本教程提供了共享Excel工作簿,涵盖各种方法,访问控制和冲突解决方案的综合指南。 现代Excel版本(2010年,2013年,2016年及以后)简化了协作编辑,消除了M的需求

Google主张Countif:综合指南 本指南探讨了Google表中的多功能Countif函数,展示了其超出简单单元格计数的应用程序。 我们将介绍从精确和部分比赛到Han的各种情况

本教程演示了如何通过对行进行分组来简化复杂的Excel电子表格,从而使数据易于分析。学会快速隐藏或显示行组,并将整个轮廓崩溃到特定的级别。 大型的详细电子表格可以是

本教程探讨了将.xls文件转换为.jpg映像的各种方法,包括内置的Windows工具和免费的在线转换器。 需要创建演示文稿,安全共享电子表格数据或设计文档吗?转换哟

本教程向您展示了如何在Google表中创建各种图表,并为不同的数据方案选择正确的图表类型。 您还将学习如何创建3D和gantt图表,以及如何编辑,复制和删除图表。 可视化数据是CRU

本教程演示了各种Excel公式,以检查单元格是否包含特定值,包括文本,数字或字符串部分。 它涵盖了使用if,istext,isnumber,搜索,查找,cuntif,centeck,sumproduct,vlookup和neste的情况

此Excel教程详细介绍了等级功能的细微差别,并演示了如何根据多个标准,组数据,计算百分位数等级等等在Excel中排名数据。 确定列表中数字的相对位置是EASI
