オーロラさんの勉強帳

SESのロースキル客先常駐勤務。データベース、Excel、Excel VBA、ネットワーク、LinuxなどIT関連のことを主に書いていきます。

【Excel】FIND関数の使い方・FIND関数、MID関数、LEN関数を組み合わせて特定の文字以降の文字を抜き出す方法

FIND関数

「検索文字列」が「対象文字列」の左から何文字目にあるかを返す関数です。
1バイト文字(半角英数字)、2バイト文字(日本語)に関わらず、各文字が常に1としてカウントされます。
なお、FIND関数は大文字と小文字を区別します。*(アスタリスク)や?のワイルドカードは使用できません。
※FIND関数と同じように使える「SERCH関数」は大文字と小文字を区別しない。ワイルドカードは使えるといった違いがあります。

【FIND関数の書式】

=FIND(検索文字列,対象文字列,[開始位置])

f:id:auroralights:20210314181847p:plain
セルC3について
セルC3には「=FIND("県",B3)」と数式が入っています。検索文字列「県」が対象文字列「兵庫県神戸市」(セルB3の文字)の何文字目にあるかを返します。
3文字目に「県」があるので3を返しています。

セルC4、C5について
セルC4、C5には「=FIND("-",B4)」「=FIND("-",B5)」と数式が入っています。検索文字「-」「g-」が対象文字列の何文字目にあるかを返しています。
セルC4は「abcdefg-hijk」の8文字目に「-」があるので8を返しています。
セルC5は「abcdefg-hijk」の7文字目に「g-」があるので7を返しています。

FIND関数の使い方

以下の例では、B列の住所に対してC列の検索文字列が何文字目にあるかをFIND関数を使いD列で返しています。
※D列の数式をE列に表示しています。
f:id:auroralights:20210314182833p:plain

FIND関数、MID関数、LEN関数を組み合わせて特定の文字以降の文字を抜き出す方法

以下の画像ではFIND関数、MID関数、LEN関数を使って、B列の住所に対して、C列の検索文字(県・府)以降の住所を抜き出しています。

f:id:auroralights:20210314184058p:plain

※事前知識
 MID関数:MID(対象文字列,開始位置,文字数)
      対象の文字列の開始位置から指定した文字数を抜き出す関数です。
 LEN関数:LEN(文字列)
       文字列が何文字かを返す関数です。

=MID(B3,FIND(C3,B3)+1,LEN(B3)-FIND(C3,B3))
D3では上記のような数式が入力されています。

MID関数の「対象文字列」は、住所の「B3」です。
MID関数の「開始位置」は、「FIND(C3,B3)+1」として「県」が住所の何文字目にあるかを調べて、+1しています。+1しないと県も含めて県神戸市という文字を返してしまいます。+1することで県以降の「神戸市」を返すことができます。
MID関数の「文字数」は、「LEN(B3)-FIND(C3,B3)」として県の次の文字から最後の文字までの文字数を指定しています。全文字数マイナス抜き出さない文字=抜き出したい文字数となっています。

f:id:auroralights:20210314190348p:plain


文字列から文字列を抽出するケースはたくさんあります。
例えば、都道府県以降の文字の抽出や、都道府県だけ抽出、市町村を抽出、「-(ハイフン)」以降の文字を抽出などいろいろなケースなど。
今回は特定の文字以降の文字を抜き出す方法を紹介しました。


auroralights.jp