本教程展示了使用内置功能和自定义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中文网其他相关文章!

本文将指导您完成为Excel Pivot表和图表创建时间表的过程,并演示如何使用它以动态和引人入胜的方式与数据进行交互。 您的数据在Pivo中组织了

本文说明了如何使用数据验证(包括单个和因列表)在Excel中创建下拉列表。 它详细介绍了该过程,为常见方案提供解决方案,并讨论诸如数据输入限制和PE之类的限制

掌握Google表格分类:综合指南 在Google表中对数据进行排序不需要复杂。本指南涵盖了各种技术,从整个床单到特定范围,按颜色,日期和多个列。 无论你是诺维


热AI工具

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

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

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

SublimeText3 英文版
推荐:为Win版本,支持代码提示!

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。

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

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。