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

时间:2016-06-29 09:37:56

标签: excel openoffice-calc libreoffice-calc

如果一个电子表格单元格包含一个由带连字符的一系列字符段组成的字符串,我需要提取第四段。

例如,考虑列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 个答案:

答案 0 :(得分:2)

非常简单...... MID 是正确的功能:

  

= MID(A1; 10; 3)

其中:

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

优点:

  • 简单

缺点:

  • 仅使用常量字符串

答案 1 :(得分: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方法。