excel巧取汉字打头的字串内容

巧取汉字打头的字串内容

处理表格数据时遇到问题:从网页表格中复制来的数据,地址一列中出现类似于“4AWZCX万载老林业局2”的无用字符前缀。现在希望提取第一个汉字及其之后的所有内容(图1),寻求高效分离中英文及数字的实操方法。

excel提取汉字

excel提取汉字

巧取汉字打头的字串内容

巧取汉字打头的字串内容

 

1. 借助自动填充

如果使用Excel 2016,可以借助自动填充功能实现。打开“Excel选项”对话框,切换到“高级”面板(图2),在右侧窗格检查勾选“为单元格值启用记忆式键入”和“自动快速填充”复选框;接下来在B2单元格手工输入“万载老林业局2”,在B3单元格手工输入“永”,此时即可看到自动匹配提示,直接按下回车键即可(图3)。

 

 

巧取汉字打头的字串内容

巧取汉字打头的字串内容

excel公式巧取汉字打头的字串内容

excel公式巧取汉字打头的字串内容

小提示:

如果使用更低版本的Excel,可使用下面两种方法。

2. 利用数组公式

在编辑栏输入公式“=MID(A2,MATCH(1=1,LENB(MID(A2,ROW($1:$25),1))=2,),25)”,按下Ctrl+Shift+Enter组合键转换为数组公式,执行之后即可从A2单元格提取第一个汉字和之后的所有内容。向下拖拽或双击填充柄,即可看到图1所示的效果。

3. 使用VBA代码

按下Alt+F11组合键,打开Microsoft Visual Basic for Applications编辑器窗口,依次选择“插入→模块”,在右侧窗格插入一个空白模块,在这里输入或粘贴如图所示代码(图4)。

vba巧取汉字打头的字串内容

vba巧取汉字打头的字串内容

代码如下所示:

Sub CommandButton1_Click()
Dim arr, brr(), str$, mr%
mr = Range(“a65536”).End(xlUp).Row
arr = Range(“a2:a” & mr)
ReDim brr(1 To UBound(arr))
For i = 1 To UBound(arr)
For j = 1 To Len(arr(i, 1))
str = Mid(arr(i, 1), j, 1)
If VBA.Asc(str) < 0 Then
brr(i) = Mid(arr(i, 1), j, Len(arr(i, 1)))
Exit For
End If
Next j
Next i
Range(“e2:e” & mr).ClearContents
Range(“e2”).Resize(UBound(brr), 1) = Application.Transpose(brr)
End Sub

 

上述代码名称“CommandButton1_Click”可根据喜好任意设置,检查无误后依次选择“文件→关闭并返回到Microsoft Excel”命令,返回Excel主界面,按下Alt+F8组合键,打开“宏”对话框,选择并运行宏,稍等片刻就可以完成提取任务。

本文版权属于电脑爱好者网站(cfan.com.cn),转载请注明出处。

 » 本站地址:http://www.gomoth.com

标签: