WPS如何将表格单元格中的汉字和数字分开?
在WPS表格中,将单元格内的汉字与数字分开,可以借助文本函数(如LEFT、RIGHT、MID、FIND等)或宏脚本,结合替换技巧和数据验证等手段,批量提取并分列显示,从而实现汉字与数字的高效分离。
功能原理与需求分析
需求背景
在日常办公中,往往会碰到“商品编号+名称”“数量+单位”等复合字段,需要将汉字与数字拆分,以便后续统计、筛选或汇总。
-
格式一致性:同一列数据格式必须统一,才能用公式批量处理。
-
后续分析:数字列用于计算汇总,汉字列用于分类汇总。
-
数据清洗:避免在筛选与分类时因混合字段导致误操作。
核心原理
汉字与数字在Unicode编码中属于不同字符集,通过查找数字或汉字出现的位置,即可确定拆分点,结合文本函数提取左右子串。
-
FIND/SEARCH:定位数字或汉字的起始位置。
-
LEFT/RIGHT/MID:根据位置截取指定长度的字符串。
-
VALUE:将提取的数字字符串转换为数值,便于计算。
-
TEXTJOIN/SPLIT:在新版本中可一键分列。
公式法——使用文本函数拆分
获取数字起始位置
要想拆分,首先要知道数字在字符串中的位置,可以用以下公式:
=MIN(IFERROR(FIND({0,1,2,3,4,5,6,7,8,9}, A2), ""))
-
原理:FIND针对每个数字分别返回位置,MIN取最小值即第一个数字位置。
-
数组公式:输入后需按Ctrl+Shift+Enter确认,使其成为数组计算。
-
兼容性:WPS 11.1 及以上版本支持数组公式;
提取汉字部分
根据数字起始位置,从字符串左侧截取汉字:
=LEFT(A2, B2-1)
-
B2:为上一步公式结果;
-
LEFT:从左起截取B2-1个字符,即汉字子串;
-
去除空格:可在外层套TRIM函数,以去掉两端多余空格;
提取数字部分
同理,从字符串右侧或中间位置截取数字:
=RIGHT(A2, LEN(A2)-B2+1)
-
LEN:计算原字符串总长度;
-
RIGHT:从右边截取剩余所有字符,即数字及后续符号;
-
数值转换:在数字字符串外套VALUE,以得到可计算数值;
批量分列与拖拽
-
选中需要分离的所有行,将相应公式下拉或批量填充;
-
将提取结果粘贴为数值或文本,避免公式依赖;
-
如需在原列直接分列,可使用“分列”命令,选择“固定宽度”或“分隔符”——但仅适用于纯数字或纯汉字分隔;
替换+分列法——借助“分列”功能
插入辅助符号
如果数据格式简单(如“123苹果”),可以先用替换将第一个数字前插入分隔符:
-
在“开始”→“替换”对话框,查找内容填写([0-9])(正则需开启“高级”);
-
替换为填写|$1,将数字前加上管道符;
-
点击“全部替换”,结果示例:|123苹果或123|苹果;
使用“分列”命令
-
选中已插入分隔符的列,点击“数据”→“分列”;
-
选择“分隔符号”模式,指定管道符|为分隔符;
-
确认后,WPS会将数据一分为二,数字列和汉字列自动分列;
-
可在步骤中指定数据格式(文本、数值)与目标插入位置;
清理辅助列
-
删除原始列或辅助列,保留分列结果;
-
如有多余空行,可用“筛选”功能快速删除空值行;
-
对数字列可进一步设置单元格格式,如“数值”“千分位”显示;
VBA 宏法——批量自动拆分
启用宏环境
在WPS中运行宏需先开启开发者模式:
-
“文件”→“选项”→“自定义功能区”,勾选“开发工具”选项;
-
在“开发工具”选项卡中,可用“宏安全性”设置允许宏运行;
VBA 脚本示例
以下宏将在指定表格区域,对每个单元格进行汉字与数字拆分,并输出到相邻两列:
Sub 拆分汉字数字()
Dim rng As Range, cell As Range
Dim iPos As Long, sText As String
Set rng = Selection
For Each cell In rng
sText = cell.Value
' 查找第一个数字位置
For i = 1 To Len(sText)
If Mid(sText, i, 1) Like "[0-9]" Then
iPos = i: Exit For
End If
Next i
' 拆分
If iPos > 1 Then
cell.Offset(0, 1).Value = Left(sText, iPos - 1) ' 汉字
cell.Offset(0, 2).Value = Mid(sText, iPos) ' 数字及后续
Else
cell.Offset(0, 1).Value = sText
End If
Next cell
End Sub
-
Selection:先选中要拆分的单元格区域;
-
Offset(0,1):拆分结果分别放在右侧一列和两列;
-
Like “[0-9]”:正则式匹配数字字符;
-
灵活改动:可根据需要调整输出列位置;
运行与保存
-
在“开发工具”→“宏”面板中,选择拆分汉字数字→点击“运行”;
-
拆分完成后,记得将宏保存到个人宏项目,以便下次调用;
-
可为宏分配快捷按钮或快捷键,进一步提高效率;
动态筛选与数据验证
动态范围命名
为拆分后数据建动态区域,方便后续图表与透视表分析:
-
在“公式”→“名称管理器”中,新增名称,如汉字列;
-
引用公式:=OFFSET($B$2,0,0,COUNTA($B:$B)-1,1);
-
同理定义数字列;
-
在数据分析或图表时,直接引用汉字列、数字列名称;
数据验证与下拉筛选
结合数据验证,为汉字列或数字列添加筛选列表:
-
在“数据”→“数据验证”中,允许“序列”,引用上面定义的区域名称;
-
插入下拉列表,实现按汉字或数字值快速筛选;
-
可设置“忽略空值”“下拉箭头”可见,提升用户体验;
常见问题与解决
公式返回错误值
-
原因:原始数据含空格或特殊字符,导致FIND定位失败;
-
解决:在定位公式外层套上TRIM和SUBSTITUTE,清除空格与不可见字符;
数字中含单位无法拆分
-
原因:数字后面紧跟“kg”“m³”等多字符单位;
-
解决:可在提取数字后,再用SUBSTITUTE或LEFT-FIND方式去除单位;
拆分结果未更新
-
原因:公式或宏未应用到新增行;
-
解决:确保公式区域已下拉至数据末端,或宏中Selection范围正确;
总结
通过公式法结合FIND/LEFT/RIGHT函数、分列法借助替换与“分列”命令、以及VBA宏批量自动化,WPS用户可根据自身需求灵活选择最合适的方案,将表格单元格中的汉字与数字高效分离,为后续的数据统计、筛选与汇总提供坚实的数据基础。
如果每个单元格内数字长度不一致,公式还能使用吗?
数字中包含小数点或千分位分隔符怎么办?
宏法如何处理全为空白的单元格?
在WPS表格中使用SUMIF函数进行条件求和,首先确定求和范围、条件区域及条件。…
在 WPS 文档中插入视频无法播放时,您可以先将视频转换为兼容性最好的 MP4(…
WPS演示支持通过插入多张图片并设置“动画”中的轮播效果或使用“触发方式”实现自…
在WPS文字中添加文档分页符,只需定位光标至需分页处 → 点击顶部菜单栏「插入」…
在WPS Office中,用户可以通过“选项”→“界面”→“语言”菜单,一键切换…
在WPS中取消PDF文档的编辑限制或页面提取密码,只需使用“PDF解密”功能,上…