如何从一个单元格提取数据到另一个单元格

给定一个电子表格单元格,其中包含一个由连字符序列组成的string,我需要提取第四个分段。

例如,考虑包含数据string的列A,如XX-XXX-X- G10 -XX-XXX,其中X表示任何字符。 我需要在B栏中填写什么公式才能得到G10?

AB 1 XX-XXX-X-G10-XX-XXX G10 

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

这很简单… MID是正确的function:

= MID(A1; 10; 3)

哪里:

  • A1是我的数据
  • 10从10个字符开始 – 在我的情况下G
  • 3个字符的范围从10(10,11,12)

优点:

  • 简单

缺点:

  • 只使用常量string工作

一种方法是使用以下通用macros(在LibreOffice中testing):

 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 。 感谢@Ralphbuild议Split方法。