2016-06-29 11 views
2

Angesichts einer Tabellenkalkulationszelle, die eine Zeichenfolge enthält, die aus einer Reihe von Zeichensegmenten mit Bindestrich besteht, muss ich das vierte Segment extrahieren.So extrahieren Sie Daten von einer Zelle in eine andere

Betrachten Sie zum Beispiel die Spalte A mit Datenstrings wie XX-XXX-X- G10 -XX-XXX, wobei X für ein beliebiges Zeichen steht. Welche Formel müsste ich in Spalte B platzieren, um G10 zu erhalten?

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

Ich suche nach einer Formel, die in Libre Office Calc, Open Office Calc, MS Excel oder Google Tabellen arbeiten könnte.

Antwort

2

Es war sehr einfach ... MID war die richtige Funktion:

= MID (A1; 10; 3)

wo:

  • A1 ist meine Daten
  • von 10 Zeichen beginnen - in meinem Fall G
  • Bereich von Zeichen aus zählt 10 (10, 11, 12)

Pro:

  • einfach

Nachteile:

  • nur arbeiten mit konstanten Strings
+0

Verwenden Sie meine Formel, wenn Sie eine Zeichenfolge mit variabler Größe möchten. – Ralph

1

Eine Möglichkeit ist die folgende allgemeine Zwecke Makro (getestet in Libreoffice) zu verwenden:

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 

dann die Zellenformel auf:

=SPLITANDEXTRACT(A1, "-", 3) 

Dies ist ähnlich zu meiner Antwort auf Ihre andere Frage: https://stackoverflow.com/a/38085634/5100564. Danke an @Ralph für die Empfehlung der Split Methode.

+0

Es gibt keine Erwähnung von VBA. Stattdessen bat das OP um eine Formel. Mit VBA ist es einfach und könnte tatsächlich viel kürzer sein. – Ralph

+0

@Ralph - hast du die andere Frage gesehen, die verlinkt ist? –

+0

Ja, tat ich. Du bist also ein großer Fan von VBA. Groß. Ich auch. Das OP hat jedoch eine neue Frage gestellt, ohne auf diesen Beitrag Bezug zu nehmen. Ich denke, dafür könnte es einen Grund geben. Und tatsächlich (wie Sie in der Post und seiner eigenen Antwort sehen können) suchte er nach einer Formel und nicht nach einer anderen VBA-Lösung. – Ralph