如何从一个单元格提取数据到另一个单元格
给定一个电子表格单元格,其中包含一个由连字符序列组成的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
方法。