Excel如何删除单元格内单字符内容 去除人名中间缩写排查重复
Excel移除人名中单字符中间名缩写方案
方法1:公式法(适合新手,直接单元格套用)
假设原始人名存储在A列,在空白列(比如B列)输入以下公式:=TEXTJOIN(" ",TRUE,FILTER(TRIM(MID(SUBSTITUTE(A1," ",REPT(" ",99)),SEQUENCE(LEN(A1)-LEN(SUBSTITUTE(A1," ",""))+1)*99-98,99)),LEN(TRIM(MID(SUBSTITUTE(A1," ",REPT(" ",99)),SEQUENCE(LEN(A1)-LEN(SUBSTITUTE(A1," ",""))+1)*99-98,99)))<>1))
- 适用版本:Excel 365、Excel 2021及以上版本
- 逻辑说明:先把人名按空格拆分成分立片段,过滤掉长度为1的片段后再用空格拼接,自动忽略空值,完全匹配你给出的示例效果。
方法2:Power Query法(适合批量处理十万级以上数据,无需反复修改公式)
操作步骤:
- 选中人名所在的单元格区域,点击「数据」选项卡→「从表格/区域」导入Power Query编辑器
- 选中人名列,点击「转换」选项卡→「拆分列」→「按分隔符」,分隔符选择空格,拆分到行
- 新增自定义列,输入公式:
Text.Length([你的人名列实际名称]) <> 1,筛选出值为TRUE的行 - 选中人名列,点击「转换」选项卡→「分组依据」,操作选择「连接值」,分隔符设置为空格
- 最后把处理好的表导出回Excel即可。
方法3:VBA宏法(适合高频重复处理同类型需求)
按Alt+F11打开VBA编辑器,插入模块,粘贴以下代码:
Function RemoveSingleMiddleName(rng As Range) As String Dim arr As Variant Dim i As Integer arr = Split(Trim(rng.Value), " ") For i = LBound(arr) To UBound(arr) If Len(arr(i)) > 1 Then RemoveSingleMiddleName = RemoveSingleMiddleName & " " & arr(i) End If Next i RemoveSingleMiddleName = Trim(RemoveSingleMiddleName) End Function
保存后回到Excel界面,直接在单元格输入=RemoveSingleMiddleName(A1)即可调用。
内容的提问来源于stack exchange,提问作者telltale2020
相关产品推荐
相关产品推荐

