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

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

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

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

本教程阐明了Excel名称的功能,并演示了如何定义单元格,范围,常数或公式的名称。 它还涵盖编辑,过滤和删除定义的名称。 Excel名称虽然非常有用,但通常是泛滥的

本教程阐明了平均值的标准偏差和标准误差之间的区别,指导您掌握标准偏差计算的最佳Excel函数。 在描述性统计中,平均值和标准偏差为interinsi

该Excel教程演示了如何计算正方根和n根。 找到平方根是常见的数学操作,Excel提供了几种方法。 计算Excel中正方根的方法: 使用SQRT函数:

解锁Google表的力量:初学者指南 本教程介绍了Google Sheets的基础,这是MS Excel的强大而多才多艺的替代品。 了解如何轻松管理电子表格,利用关键功能并协作


热AI工具

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

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

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

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

热门文章

热工具

Atom编辑器mac版下载
最流行的的开源编辑器

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器

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

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

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