2017-12-25 9 views
0

私は定期的なパターンのないカバレッジの日付のリストを持っています。例えば、私は次の文字列があります。Excelの文字列から年を抽出します

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; 

を私は、たとえば、Excelの別の列にだけ年の値を抽出しようとしています:

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 

(可能であれば、各年が表示されます別の列に) 年を抽出する方法はありますか?私はVBコードを書くことを考えましたが、私は正直なところVBに流暢ではありません。

ありがとうございます。

答えて

4

使用この配列数式:

=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)),"") 

はそれが編集モードを終了するときはCtrl-Shiftキーを押しながら入力する代わりに入力して確認する必要が配列数式であること。

B1に入れて、Ctrl + Shift + Enterを押します。次に、上下にコピー/ドラッグします。

この式はfromuntilを探し、次の "単語"を返します。そのルールが一貫していない場合、これは機能しません。

enter image description here

+0

これは素晴らしいです! 私は(TRIMを除いて)私が考えた機能のどれも持っていないので、それがどのように構築されているか把握しようとしています! ありがとう –

関連する問題