作者:乔山办公网日期:
返回目录:excel表格制作
截取数字复用公式=MID(B7,MIN(FIND(ROW($1:$10)-1,B7&5/19)),COUNT(-MID(B7,ROW($1:$105),1)))数组公式,制按ctrl+shift+回车结束,B7换成实际单元格
截取其他字符串直接用zhidaosubstitute把截取出来的数字替换为空就好了
=substitute(A2,B2,"")
假设第一列是A列,则在C1列输入公式:
=LEFT(A1,LEN(A1)*2-LENB(A1))
在D1输入公式:
=RIGHT(A1,LEN(A1)-LEN(B1))
下拉
自己建立 自定义函数 ,alt+f11 打开VBA 编辑器 插入一个模块, 粘贴下面代码 ,在EXCEL 表里面就可以使用函数 getstr() 来提取了
参数1:选单元格
参数2: “sz” 代表数字 ,“zm” 代表字母 ,“hz” 代表 汉字,"dh" 代表 电话号码
参数3:1 代表替换, 2代表提取 ,参数3可以省e799bee5baa6e997aee7ad94e59b9ee7ad94339略 默认 是提取
Public Function getstr(rg As String, k As String, Optional j As Integer = 1)
Dim regx As New RegExp
With regx
.Global = True
If k = "sz" Or k = "SZ" Then
.Pattern = "\d" '数字
ElseIf k = "hz" Or k = "HZ" Then
.Pattern = "[\u4e00-\u9fa5]" ' 汉字
ElseIf k = "zm" Or k = "ZM" Then
.Pattern = "[A-z]" '字母
ElseIf k = "dh" Or k = "DH" Then
.Pattern = "\d{3,4}\-\d{7,8}|\d{11}|\d{8}" '电话号码
End If
If j = 2 Then '替换
getstr = .Replace(rg, "")
ElseIf j = 1 Then '提取
m1 = ""
Set mat = .Execute(rg)
For Each m In mat
m1 = m1 & m
Next
getstr = m1
End If
End With
End Function
前面几zhidao位回答你的用数据分列的方法是很快捷的。要用公式回的话,可用下面的公式,如图,答假设数据在A列:
B1=--TRIM(MID(SUBSTITUTE($A1,"x",REPT(" ",99)),99*COLUMN(A:A)-98,99))
右拉到D1,再一起下拉。