2017-02-24 133 views
0

我在單元格中有一堆文本,但許多單元格包含##格式的一些文本(其中#實際上是從0-9 )。Excel:從文本始終爲#的單元格中提取文本#

我使用這個公式,它工作正常,但有時在單元格中有垃圾,導致公式返回錯誤的信息。

= MID(B7,(FIND({ 「」},B7,1)-1),3)

例如,有時一個單元包含:「ABC(第一列表。)測試8.7耶」。因此,我以t結束。而不是理想的8.7。

任何想法?

謝謝!

+0

你需要一個正則表達式這一點,我不認爲常規Excel有這樣的支持。 –

+1

您可以使用VBA用戶定義函數輕鬆完成此操作。 –

+0

請參見[循環訪問列並檢查單元格是否包含特定字符](http://stackoverflow.com/questions/42396598/loop-through-column-and-check-if-cell-contains-specific-chars/42398975#42398975 )。 – Jeeped

回答

3

這裏是一個用戶自定義函數,它將在字符串中返回一個數字模式,當且僅當它符合您描述的模式。如果你所描述的模式是不完全的代表,您需要提供一個更好的例子:

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 

enter image description here