【问题标题】:How to extract data from one cell to another如何将数据从一个单元格提取到另一个单元格
【发布时间】:2016-10-31 22:27:30
【问题描述】:

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

例如,假设 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 表格中使用的公式。

【问题讨论】:

    标签: excel openoffice-calc libreoffice-calc


    【解决方案1】:

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

    =MID(A1;10;3)

    地点:

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

    优点:

    • 简单

    缺点:

    • 仅适用于常量字符串

    【讨论】:

    • 如果你想要一个可变大小的字符串,请使用我的公式。
    【解决方案2】:

    一种方法是使用以下通用宏(在 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 方法。

    【讨论】:

    • 没有提到 VBA。相反,OP要求一个公式。使用 VBA 很容易,实际上可以更短。
    • @Ralph -- 你看到另一个相关的问题了吗?
    • 是的,我做到了。所以,你是 VBA 的忠实粉丝。伟大的。我也是。然而,OP 在没有参考这篇文章的情况下发布了一个新问题。我想这可能是有原因的。事实上(正如你在帖子和他自己的回答中看到的那样)他正在寻找一个公式,而不是另一个 VBA 解决方案。
    猜你喜欢
    • 2016-10-30
    • 2018-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-10
    相关资源
    最近更新 更多