■この記事で紹介する内容
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となりません。
コメント