Excel関数で文字列から特定の文字列を抽出する方法

Excel関数で文字抽出方法 Office
Excel関数で文字抽出方法

■この記事で紹介する内容

Excel関数で文字列から前・後・中の文字列を抽出する方法を紹介します。

ある文字列の前抽出
ABC(Sample)ABCを抽出
=IFERROR(IF(FIND("(",A1),LEFT(A1,FIND("(",A1)-1)),A1)
ある文字列の後抽出
ABC(Sample)(Sample)抽出
=IFERROR(IF(FIND("(",A1),RIGHT(A1,LEN(A1)-FIND("(",A1)+1)),A1)
ある文字列の中抽出
ABC(Sample)Sampleを抽出
=IFERROR(IF(AND(FIND("(",A1),FIND(")",A1)),MID(A1,FIND("(",A1)+1,FIND(")",A1)-(FIND("(",A1)+1))),A1)

※文字列”ABC(Sample)”をセルA1に書き、関数をB1に書くと抽出確認できます。

 

ある文字列より前の文字列抽出

ある文字列より前のデータを抽出する方法
例: 条件:”(” より前の文字列を抽出
ABC(Sample)ABCを抽出する方法です。

基本 (下記表をセルA1に貼り付け可能です。)(②と③の関数式は同じです。)

ケースA1セルデータ抽出結果関数式

(正常系)
東京都(品川区)東京都
=LEFT(B2,FIND("(",B2)-1)

(正常系)
東京都(目黒区)東京都
=LEFT(B4,LEN(B4)-(FIND("(",B4)+1))

(異常系)
東京都不明#VALUE
=LEFT(B6,LEN(B6)-(FIND("(",B6)+1))

→③のようにセルデータに”(“がないと#VALUEとなってしまいます。
 下記の応用では、セルデータに”(“がなくてもエラーとなりません。

応用   (下記表をセルA8に貼り付け可能です。) (④と⑤の関数式は同じです。)

ケースA8セルデータ抽出結果関数式

(正常系)
東京都(品川区)東京都
=IFERROR(IF(FIND("(",B9),LEFT(B9,FIND("(",B9)-1)),B9)

(正常系)
東京都出身東京都出身
=IFERROR(IF(FIND("(",B11),LEFT(B11,FIND("(",B11)-1)),B11)
memo

 ④⑤のように”(“があってもなくても#VALUEとなりません。

ある文字列より後の文字列抽出

ある文字列より後のデータを抽出する方法
例: 条件:”(” より後の文字列を抽出
ABC(Sample)(Sample)を抽出する方法です。

基本 (下記表をセルA1に貼り付け可能です。)(②と③の関数式は同じです。)

ケースA1セルデータ抽出結果関数式

(正常系)
東京都(品川区)(品川区)
=RIGHT(B2,FIND("(",B2)+1)

(正常系)
東京都(目黒区)(目黒区)
=RIGHT(B4,LEN(B4)-(FIND("(",B4)-1))

(異常系)
東京都不明#VALUE
=RIGHT(B6,LEN(B6)-(FIND("(",B6)-1))

→③のようにセルデータに”(“がないと#VALUEとなってしまいます。
下記の応用では、セルデータに”(“がなくてもエラーとなりません。

応用   (下記表をセルA8に貼り付け可能です。) (④と⑤の関数式は同じです。)

ケースA8セルデータ抽出結果関数式

(正常系)
東京都(品川区)(品川区)
=IFERROR(IF(FIND("(",B9),RIGHT(B9,LEN(B9)-FIND("(",B9)+1)),B9)

(正常系)
東京都不明東京都不明
=IFERROR(IF(FIND("(",B11),RIGHT(B11,LEN(B11)-FIND("(",B11)+1)),B11)
memo

 ④⑤のように”(“があってもなくても#VALUEとなりません。

ある文字列の中の文字列抽出

ある文字列より後のデータを抽出する方法
例: 条件:”(” より後で且つ”)”より前の文字列を抽出
ABC(Sample)Sampleを抽出する方法です。

基本 (下記表をセルA1に貼り付け可能です。)(②と③の関数式は同じです。)

ケースA1セルデータ抽出結果関数式

(正常系)
東京都(品川区)(品川区)
=MID(B2,FIND("(",B2)+1,FIND(")",B2)-(FIND("(",B2)+1))

(異常系)
東京都不明#VALUE
=MID(B4,FIND("(",B4)+1,FIND(")",B4)-(FIND("(",B4)+1))

→③のようにセルデータに”(“,”)”がないと#VALUEとなってしまいます。
下記の応用では、セルデータに”(“,”)”がなくてもエラーとなりません。

応用   (下記表をセルA8に貼り付け可能です。) (④と⑤の関数式は同じです。)

ケースA8セルデータ抽出結果関数式

(正常系)
東京都(品川区)(品川区)
=IFERROR(IF(AND(FIND("(",B9),FIND(")",B9)),MID(B9,FIND("(",B9)+1,FIND(")",B9)-(FIND("(",B9)+1))),B9)

(正常系)
東京都不明東京都不明
=IFERROR(IF(AND(FIND("(",B9),FIND(")",B9)),MID(B9,FIND("(",B9)+1,FIND(")",B9)-(FIND("(",B9)+1))),B9)
memo

 ④⑤のように”(“,”)”があってもなくても#VALUEとなりません。

コメント

タイトルとURLをコピーしました