2016-06-29 227 views
2

如果電子表格單元格包含由連字符序列組成的字符串,則需要提取第四個分段。如何將數據從一個單元格提取到另一個單元格

例如,考慮包含數據字符串的列A,如XX-XXX-X- G10 -XX-XXX,其中X表示任何字符。我需要在B列中放置什麼公式才能獲得G10?

  A    B 
1 XX-XXX-X-G10-XX-XXX  G10 

我正在尋找可以在Libre Office Calc,Open Office Calc,MS Excel或Google表格中使用的公式。

回答

2

這是非常簡單... MID是正確的功能:

= MID(A1; 10; 3)

其中:

  • A1是我的數據
  • 從10個字符開始 - 在我方案G
  • 範圍的字符計數從10(10,11,12)

優點:

  • 簡單

缺點:

  • 只能工作具有恆定字符串
+0

如果您想要一個可變大小的字符串,請使用我的公式。 – Ralph

1

的一種方法是使用下面的通用的宏(在LibreOffice的測試):

Function SplitAndExtract(findIn As String, delims As String, _ 
         Optional segment_param As Integer) 
    ' findIn - string or cell to search in 
    ' delims - the delimiters to split the string up by 
    ' segment - which segment number to grab 
    If IsMissing (segment_param) Then 
     segment = 0 
    Else 
     segment = segment_param 
    End If 
    splits = Split(findIn, delims) 
    If UBound(splits) < segment - 1 Then 
     SplitAndExtract = "No result for that segment" 
     MsgBox "No result for that segment" 
     Exit Function 
    Else 
     SplitAndExtract = splits(segment) 
    End If 
End Function 

然後設置單元公式:

=SPLITANDEXTRACT(A1, "-", 3) 

這類似於到我的回答你的另一個問題:https://stackoverflow.com/a/38085634/5100564。感謝@Ralph提出的Split方法。

+0

沒有提到VBA。相反,OP要求一個公式。使用VBA很容易,實際上可以縮短得多。 – Ralph

+0

@Ralph - 你有沒有看到有關聯的其他問題? –

+0

是的,我做到了。所以,你是VBA的忠實粉絲。大。我也是。然而,OP沒有引用這篇文章發佈了一個新問題。我想這可能是有原因的。事實上(正如你在帖子和他自己的回答中看到的那樣),他正在尋找一個公式,而不是另一個VBA解決方案。 – Ralph

相關問題