0
我在单元格中有一堆文本,但许多单元格包含##格式的一些文本(其中#实际上是从0-9 )。Excel:从文本始终为#的单元格中提取文本#
我使用这个公式,它工作正常,但有时在单元格中有垃圾,导致公式返回错误的信息。
= MID(B7,(FIND({ “”},B7,1)-1),3)
例如,有时一个单元包含:“ABC(第一列表。)测试8.7耶”。因此,我以t结束。而不是理想的8.7。
任何想法?
谢谢!
我在单元格中有一堆文本,但许多单元格包含##格式的一些文本(其中#实际上是从0-9 )。Excel:从文本始终为#的单元格中提取文本#
我使用这个公式,它工作正常,但有时在单元格中有垃圾,导致公式返回错误的信息。
= MID(B7,(FIND({ “”},B7,1)-1),3)
例如,有时一个单元包含:“ABC(第一列表。)测试8.7耶”。因此,我以t结束。而不是理想的8.7。
任何想法?
谢谢!
这里是一个用户自定义函数,它将在字符串中返回一个数字模式,当且仅当它符合您描述的模式。如果你所描述的模式是不完全的代表,您需要提供一个更好的例子:
Option Explicit
Function reValue(S As String)
Dim RE As Object, MC As Object
Set RE = CreateObject("vbscript.regexp")
With RE
.Global = True
.Pattern = "\b\d\.\d\b"
If .test(S) = True Then
Set MC = .Execute(S)
reValue = CDbl(MC(0))
Else
reValue = ""
End If
End With
End Function
你需要一个正则表达式这一点,我不认为常规Excel有这样的支持。 –
您可以使用VBA用户定义函数轻松完成此操作。 –
请参见[循环访问列并检查单元格是否包含特定字符](http://stackoverflow.com/questions/42396598/loop-through-column-and-check-if-cell-contains-specific-chars/42398975#42398975 )。 – Jeeped