2017-12-25 2 views
0

Ich habe eine Liste der Erfassungsdaten ohne wiederkehrendes Muster. Zum Beispiel habe ich die folgenden Strings:Jahre aus String in Excel extrahieren

Available from 1951 until 1984; 

Available from 1964 volume: 2 issue: 1 until 2002 volume: 20 issue: 4; 

Available from 1958 volume: 1 issue: 1; 

Available from 1970 issue: 24 until 1989 issue: 110; Available from 1990 volume: 1 issue: 1 until 2001 volume: 12 issue: 4; 

Ich versuche, nur die Jahre Wert in eine andere Spalten in Excel, zum Beispiel zu extrahieren:

Available from 1951 until 1984; -> 1951 | 1984 
Available from 1964 volume: 2 issue: 1 until 2002 volume: 20 issue: 4; -> 1964 | 2002 
Available from 1970 issue: 24 until 1989 issue: 110; Available from 1990 volume: 1 issue: 1 until 2001 volume: 12 issue: 4; -> 1970 | 1989 | 1990 | 2001 

(wenn möglich, soll jedes Jahr erscheinen in einer anderen Spalte) Gibt es eine Möglichkeit für mich, die Jahre zu extrahieren? Ich dachte daran, einen VB-Code zu schreiben, aber ich spreche ehrlich gesagt VB nicht fließend.

Vielen Dank.

Antwort

4

verwenden Matrixformel:

=IFERROR(INDEX(MODE.MULT(IF((TRIM(MID(SUBSTITUTE($A1," ",REPT(" ",999)),(ROW($1:$50)-1)*999+1,999))="from")+(TRIM(MID(SUBSTITUTE($A1," ",REPT(" ",999)),(ROW($1:$50)-1)*999+1,999))="until"),SUBSTITUTE(TRIM(MID(SUBSTITUTE($A1," ",REPT(" ",999)),(ROW($1:$50))*999+1,999)),";","")*{1,1})),COLUMN(A:A)),"") 

Als eine Matrixformel muss es mit bestätigt werden Ctrl-Shift-Enter statt Eingabe, wenn Bearbeitungsmodus zu verlassen.

In B1 eingeben, drücken Sie Strg-Umschalt-Enter. Dann kopiere/ziehe über und unter.

Diese Formel sucht nach from und until und zieht das nächste "Wort" als Rückgabewert. Wenn diese Regel nicht konsistent ist, wird dies nicht funktionieren.

enter image description here

+0

Das ist brilliant! Ich versuche immer noch herauszufinden, wie es gebaut ist, da es keine der Funktionen hat, die ich gedacht habe (außer TRIM)! Vielen Dank –