如何使用公式提取文字中的数字?
来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/11/11 09:11:46
如何使用公式提取文字中的数字?
Excel中有没有一种公式或者VBS可以像如图所示一样只提取OT前的数字
可用者高分悬赏啊!
用公式麻烦,用VBA较简单,代码如下,详见附件
Private Sub CommandButton1_Click()
Dim I%,S$,X!,Ra As Range
Set Ra = Cells.Find("Examples:")
If Ra Is Nothing Then MsgBox "没有找到原始数据列:Examples":Exit Sub
Set Ra = Range(Ra.Offset(1),Cells(Cells.Rows.Count,Ra.Column).End(3))
Ra.Offset(,1).ClearContents
For Each Ra In Ra
S = Ra.Text
I = InStr(S,"OT")
If I > 0 Then
For j = I - 1 To 1 Step -1
If InStr("0123456789.",Mid(S,j,1)) = 0 Then Exit For
Next
X = Val(Mid(S,j + 1))
If X > 0 Then Ra.Offset(,1) = X
End If
Next
End Sub
再问: 谢谢!高手啊!可以告诉我怎么应用到别的文档中吗?能稍稍解释下Set Ra = Range(Ra.Offset(1), Cells(Cells.Rows.Count, Ra.Column).End(3))以及之后的公式吗?
再答: 将代码复制到其它表格的宏里或同样用按钮代码也行,关键是如果数据列的标题 "Examples:"改变了,代码里要同样改变。
对照我发给你的文件好解释一些:
Set Ra = Range(Ra.Offset(1), Cells(Cells.Rows.Count, Ra.Column).End(3))‘使Ra代表A2:A15
Ra.Offset(, 1).ClearContents'清空B2:B15的数据
For Each Ra In Ra'遍历A2:A15各单元格
S = Ra.Text'将单元格文本赋给字符串变量S, 以方便处理
I = InStr(S, "OT")'查找OT在字符串中的位置
If I > 0 Then'如果字符串中有OT存在
For j = I - 1 To 1 Step -1'对字符串的字符从OT之前开始往前查找数字 小数点 空格直到遇到其它字符退出循环,以确定数字的开始位置
If InStr("0123456789. ", Mid(S, j, 1)) = 0 Then Exit For
Next
X = Val(Mid(S, j + 1))'从OT前数字的开始位置取右边的字符再转换为数字得最终结果
If X > 0 Then Ra.Offset(, 1) = X'当结果大于0时将结果放入右边的单元格
Private Sub CommandButton1_Click()
Dim I%,S$,X!,Ra As Range
Set Ra = Cells.Find("Examples:")
If Ra Is Nothing Then MsgBox "没有找到原始数据列:Examples":Exit Sub
Set Ra = Range(Ra.Offset(1),Cells(Cells.Rows.Count,Ra.Column).End(3))
Ra.Offset(,1).ClearContents
For Each Ra In Ra
S = Ra.Text
I = InStr(S,"OT")
If I > 0 Then
For j = I - 1 To 1 Step -1
If InStr("0123456789.",Mid(S,j,1)) = 0 Then Exit For
Next
X = Val(Mid(S,j + 1))
If X > 0 Then Ra.Offset(,1) = X
End If
Next
End Sub
再问: 谢谢!高手啊!可以告诉我怎么应用到别的文档中吗?能稍稍解释下Set Ra = Range(Ra.Offset(1), Cells(Cells.Rows.Count, Ra.Column).End(3))以及之后的公式吗?
再答: 将代码复制到其它表格的宏里或同样用按钮代码也行,关键是如果数据列的标题 "Examples:"改变了,代码里要同样改变。
对照我发给你的文件好解释一些:
Set Ra = Range(Ra.Offset(1), Cells(Cells.Rows.Count, Ra.Column).End(3))‘使Ra代表A2:A15
Ra.Offset(, 1).ClearContents'清空B2:B15的数据
For Each Ra In Ra'遍历A2:A15各单元格
S = Ra.Text'将单元格文本赋给字符串变量S, 以方便处理
I = InStr(S, "OT")'查找OT在字符串中的位置
If I > 0 Then'如果字符串中有OT存在
For j = I - 1 To 1 Step -1'对字符串的字符从OT之前开始往前查找数字 小数点 空格直到遇到其它字符退出循环,以确定数字的开始位置
If InStr("0123456789. ", Mid(S, j, 1)) = 0 Then Exit For
Next
X = Val(Mid(S, j + 1))'从OT前数字的开始位置取右边的字符再转换为数字得最终结果
If X > 0 Then Ra.Offset(, 1) = X'当结果大于0时将结果放入右边的单元格
如何使用公式提取文字中的数字?
excel 构成为文字 文字 字母 数字 字母,如何提取数字, 最后一个字母,倒数第三个字母,公式
函数如何提取数字公式?例如A1的单元格是:3*76*3套.请问如何提取这条公式中的数字,并且能自动计算结果
EXCEL中如何从中文字中提取数字
如何设置Excel中的文字等于数字?
WPS表格中有符号,有文字,有数字,如何把数字提取出来
如何一次性提取出word文档中括号中的数字?
c语言问题,如何将字符串中的数字提取
Excel 提取数字的公式
excel中,如何忽略两列中的文字,对数字进行公式运算如相乘或相加
EXCEL如何将一格中的内容(文字和字母数字)分成两格,用函数或是公式?
WORD中的表格如何使用公式计算,