都道府県を抜き出すFINDとLEFT?それともMID?/Excel

Excelアイキャッチ Excel

この記事は更新して新しいブログに引っ越しました。
↓↓↓
関数で都道府県を抽出! IF・MID・LEFT|Excel|PCワークLABO

住所から都道府県だけを抜き出す

都道府県を抜き出した表

住所から都道府県だけを抜き出したい。
LEFT関数を使えば左から指定した数分文字を抜き出すことができる。

しかし、都道府県は3文字とは限らない。

そこで、2つの考え方からできる関数をそれぞれ紹介。

1つ目は、「県」とそれ以外に分けて抜き出すパターン。
2つ目は、都道府県の文字数で分けて抜き出すパターン。

「県」とそれ以外に分けて抜き出すパターン

47都道府県の内訳は1都1道2府43県。
43の県と、東京都・北海道・大阪府・京都府の4つ。

県の文字数はバラバラだけれど、県以外の4つはどれも漢字3文字だということがわかる。
そこで利用する関数はこちら。

IFERRORとFINDで完成した表

=IFERROR(LEFT(A2,FIND(“県”,A2)),LEFT(A2,3))

式を文章にすると…
【A2】から「県」という文字を探して、見つけたら左からその文字まで抜き出して表示する。
結果がエラーなら(県が見つからなければ)【A2】の左から3文字分抜き出して表示する。

FIND関数は、検索した文字が見つからない場合エラーコードが表示される。
そこで、エラーだったら(=見つからなければ)という分岐が必要になりIFERROR関数を使うことになる。

では、詳しく見ていこう。

LEFT関数

文字列の左端から指定した数分文字を抜き出す関数

LEFT関数
=LEFT(文字列,文字数)
文字列:文字を抜き出したいセルを指定
文字数:左から何文字分抜き出したいか数を指定

例:【A1】の文字列の左端から2文字分抜き出したい。
=LEFT(A1,2)
この結果は”あい”となる。

LEFT関数例

今回のセルではどうだろう。

都道府県を抜き出した表

=LEFT(A2,)
【A2】のセルからLEFT関数で文字列を抜き出す。
の抜き出す文字数は、「県」の文字のところまでとしたい。

「県」の文字のところ…とするためには、
「県」の文字を探すFIND関数が必要になる。

FIND関数

検索ワードが文字列の何番目にあるのかを求める関数。

FIND関数
=FIND(検索文字列,対象,[開始位置])
検索文字列:探したい文字を””で括って指定(大文字と小文字は区別する)
対象:探したい文字を含むセルを指定
[開始位置]:「対象」セルの何文字目から検索するのかを指定
(※ [ ]は省略可を意味し、省略した場合は先頭の1文字目から検索開始となる)

例:【A1】のセルから”う”の文字を探して何文字目にあるのか求める。
(ここでは先頭の1文字目から探したいので「開始位置」は省略する。)
=FIND(“う”,A1)
この結果は”3”となる。

FIND関数例

今回のセルで見てみよう。

都道府県を抜き出した表

=LEFT(A2,)
先ほどの文字数?の部分にFIND関数を追加する。

=LEFT(A2,FIND(“県”,A2))
【A2】のセルから”県”を探して何文字目にあるか求め、LEFT関数でその数分左から抜き出す。

ここで注意すること、
FIND関数は検索した文字が見つからない場合、エラーで返ってくる。
つまり、”県”が見つからなかった場合エラーとなってしまう。

エラーになった場合の代替の関数を用意するために、IFERROR関数が必要になる。

IFERROR関数

エラーが表示される計算結果となる場合、代わりの計算式または値を表示させる関数。

IFERROR関数
=IFERROR(値,エラーの場合の値)
:計算式(値とはその計算式の結果のこと)
エラーの場合の値:「値」がエラーとなる場合、エラーコードの代わりに表示させたい値もしくは計算式 ※単にエラーコードを表示させたくない場合は””(ダブルクォーテーション2つ連続入力)で非表示とさせる。

例:【D列】に売り上げの前日比(前日比=今日÷前日)を求めたい。
ただし、割る数(この場合「前日」)が「0」だとエラーになってしまうので、
その場合はエラーコードの代わりに「前日なし」と表示したい。
【D2】に入る関数は、
=IFERROR(C2/B2,”前日なし”)
※ D列は%の表示形式が設定されている

IFERROR関数例

今回の表で見てみよう。

都道府県を抜き出した表

LEFT関数までで出来た =LEFT(A2,FIND(“県”,A2)) にIFERROR関数を追加する。

=IFERROR(LEFT(A2,FIND(“県”,A2)),?)
【A2】のセルから”県”を見つけLEFT関数でそこまでの文字数を抜き出す。
もしエラーになる場合は…?

エラーになる場合=「県」が見つからない場合
つまり、東京都・北海道・大阪府・京都府の4つの場合ということ。

この共通点は、どれも漢字3文字。
ということは…「県」がなかったら左から3文字分抜き出せばいいよね。

=IFERROR(LEFT(A2,FIND(“県”,A2)),LEFT(A2,3))
【A2】のセルから”県”を見つけLEFT関数でそこまでの文字数を抜き出す。
もしエラーになる場合は左から3文字分抜き出す。

これで都道府県を抜き出すことができた。

次は、都道府県の文字数で分けて抽出するやり方の紹介。

都道府県の文字数で分けて抜き出すパターン

47都道府県のうち、神奈川県・和歌山県・鹿児島県の3つは「県」を含め漢字4文字。
それ以外はすべて漢字3文字。

47都道府県名

これを利用すると、また違う関数で抜き出すことができる。

そこで利用する関数はこちら。

MIDで抜き出した例

=IF(MID(A2,4,1)=”県”,LEFT(A2,4),LEFT(A2,3))

式を文章にすると…
【A2】の4文字目が「県」だったら左から4文字分抜き出して表示する。
そうでなければ【A2】の左から3文字分抜き出して表示する。

LEFT関数は既に上で解説しているのでIF関数とMID関数を解説。

IF関数

条件を満たしているかどうかを判定し、指定した内容を表示させる関数

IF関数
=IF(論理式,値が真の場合,値が偽の場合)
論理式:条件となる計算式
値が真の場合:条件を満たしている場合に表示する内容を指定
値が偽の場合:条件を満たしていない場合に表示する内容を指定

例:B列(点数)が70以上なら「合格」そうでなければ「不合格」と表示したい。
【C2】に入る関数は、=IF(B2>=70,”合格”,”不合格”)
【C2】【C3】【C5】の結果は「合格」となり、【C4】の結果は「不合格」となる。

IF関数例

今回のセルで見てみよう。

都道府県を抜き出した表

=IF(=”県”,LEFT(A2,4),LEFT(A2,3))
もし4文字目が「県」だったら【A2】の左から4文字分抜き出して表示し、
4文字目が「県」でなければ【A2】の左から3文字分抜き出して表示する。

4文字目を確認するためにMID関数を使っていこう。

MID関数

文字列の指定した位置から指定した数分文字を抜き出す関数

MID関数
=MID(文字列,開始位置,文字数)
文字列:文字を抜き出したいセルを指定
開始位置:抜き出す文字の最初の位置を指定
文字数:開始位置から何文字分抜き出すか数を指定

例:【A1】のセルの3文字目から2文字分抜き出したい。
=MID(A1,3,2)
この結果は”うえ”となる。

MID関数例

今回のセルで見てみよう。

都道府県を抜き出した表

先ほどののところは以下のようになる。

=IF(MID(A2,4,1)=”県”,LEFT(A2,4),LEFT(A2,3))
もし【A2】の4文字目が「県」だったら【A2】の左から4文字分抜き出して表示し、
4文字目が「県」でなければ【A2】の左から3文字分抜き出して表示する。

これで都道府県を抜き出すことができた。

市区郡を抜き出すやり方は「IFERROR・FIND関数で市区郡を抜き出そう/Excel」で紹介

住所録から後半(住所1以降)の文字列を抜き出す

【住所2】に、【住所1】以降の文字列を抜き出して表示させたい。

住所の後半を表示した結果

前回の記事で解説した文字数を数えて抜き出すパターンと、
抜き出した県名部分を消して表示させるパターンを紹介。

文字数を数えて抜き出すパターン

文字列の右から指定した数を抜き出す「RIGHT関数」を使いたい。
しかし、住所によって何文字目まで抜き出すのかは違ってくる。

そこで、文字数を求める「LEN関数」と組み合わせてみる。
【住所1】の文字数分引いたものを【住所】の文字列の右から抜き出して表示…と。

RIGHT関数とLEN関数例

【C2】の関数はこうなる。

=RIGHT(A2,LEN(A2)-LEN(B2))
この関数を文章で書くと以下のようになる。
【A2】の文字数から【B2】の文字数引いた数を【A2】の文字列の右側から抜き出す。

では関数を一つずつ確認していこう。

文字列の右端から指定した数分文字を抜き出す関数

RIGHT関数
=RIGHT(文字列,文字数)
文字列:文字を抜き出したいセルを指定
文字数:右から何文字分抜き出したいか数を指定

例:【A1】のセルの右から3文字分抜き出したい。
=RIGHT(A1,3)
この結果は”うえお”となる。

RIGHT関数例

今回のセルではどうだろう。

住所の後半を表示した結果

=RIGHT(A2,)
【A2】のセルからRIGHT関数で抜き出すのはわかる。
でも何文字抜き出せばいい?

そこで文字数を求めるLEN関数を使う。

LEN関数

文字列の長さ(文字数)を求める関数
長さを意味するlengthからきている。

LEN関数
=LEN(文字列)
文字列:文字数を数えたいセルを指定

例:【A1】のセルの文字列が何文字か知りたい。
=LEN(A1)
この結果は”5”となる。

LEFT関数例

今回の表で、先ほどのRIGHT関数と組み合わせてみよう。

住所の後半を表示した結果

=RIGHT(A2,)

先ほどの文字数?の部分にLEN関数を追加する。

=RIGHT(A2,LEN(A2)-LEN(B2))
【A2】の文字数から【B2】の文字数を引いた数分【A2】の文字列の右側から抜き出す。

これで完成した。

抜き出した県名部分を消して表示させるパターン

【A列】の住所から【B列】の県名だけを削除したものを表示したい。

そこで、文字列を置き換える「SUBSTITUTE関数」を利用して
【住所】から、【住所1】の文字を非表示にしたものを表示…とする。

SUBSTITUTE使用完成

【C2】の関数はこうなる。

=SUBSTITUTE(A2,B2,””)
この関数を文章で書くと以下のようになる。
【A2】の文字列から【B2】の文字を非表示にしたものを表示する

では関数を確認しよう。

SUBSTITUTE関数

検索した文字列を他の文字列に置き換える関数

SUBSTITUTE関数
=SUBSTITUTE(文字列,検索文字列,置換文字列,[置換対象])
文字列:セルを指定
検索文字列:検索したい文字列を指定
置換文字列:置き換える文字列を指定
[置換対象]:検索文字列が複数ある場合何番目を置き換えるか指定
(※省略可 省略するとすべての文字列が置き換え対象となる)

例:【A列】の「(株)」を「株式会社」に置き換えて表示したい。
【B1】に入れる関数は以下のようになる。
=SUBSTITUTE(A1,”(株)”,”株式会社”)

SUBSTITUTE関数の例

これを今回のセルで使う。

住所の後半を表示した結果

【C2】の関数はこちら。

=SUBSTITUTE(A2,B2,””)

※ “”(ダブルクォーテーション2個連続)というのは非表示という意味。
この関数を文章で書くと、
【A2】の文字列から【B2】の文字列を見つけたら非表示に置き換えて表示する
つまり、
【A2】の文字列から【B2】の文字列を消したものを表示する。

ということになり、後半の住所が完成する。

市区郡を抜き出すやり方は「IFERROR・FIND関数で市区郡を抜き出そう/Excel」で紹介

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