こんにちは。
@OfficeTAKUです。
関数は組み合わせることでいろいろな処理ができます。
今回は都道府県名から記入されている住所から都道府県名だけを切り出す方法です。
先日、Twitterで新しい方法を教えて頂いたのでそちらのご紹介も兼ねて記しておきます。
頭の体操だと思ってお付き合い下さい。
前提:都道府県名は3文字と4文字しかない
都道府県名の切り出しの前提となっているのが、現在の都道府県名の文字数と特徴です。
実は 47都道府県、文字数は3文字と4文字の2種類しかありません。
47のうち、44の都道府県が3文字です。
残りの3つが4文字。
その3つはすべて「県」です。
つまり、
- 都道府県名は3文字と4文字しかない
- 4文字の都道府県名は3つだけですべて県である
- 「県」という文字からはじまる市や区はない
そこで、4文字目に県があるかどうかを判断基準とします。
IF関数を利用して都道府県名を切り出す
まずは、昔から知られている一般的な方法。
【考え方】
住所が入力されている文字列の4文字目が「県」であれば、左の頭から4文字切り出し、それ以外は3文字切り出します。
【IF関数】
- 論理式(条件):MID関数で切り出した4文字目が”県”かどうか
- 真の場合 :LEFT関数(左端から)4文字を切り出す
- 偽の場合 :LEFT関数(左端から)3文字を切り出す
【数式】
セルA2に入力された住所から都道府県名を切り出す数式
=IF(MID(A2,4,1)=”県”,LEFT(A2,4),LEFT(A2,3))
LEFT関数の文字数を論理式の戻り値を利用して決める
かっこいいNOW関数さんにぞっこんの私ですが、その生みの親 筒井.xls@Excel関数擬人化 (@Tsutsui0524)さんの下記のつぶやきを目にして、なるほど!
=LEFT(A2,3+(MID(A2,4,1)="県"))
セルA2に入力された住所から県名を抜き出す数式です。
『◯◯県』に『県◯市』があった場合に『◯◯県県』を返すことが危惧されますが、『県』という漢字を含む市は岐阜県山県市のみ、東京23区に『県』から始まる区が無いので大丈夫です。 pic.twitter.com/Zd2WOECBhD— 筒井.xls@Excel関数擬人化 (@Tsutsui0524) August 18, 2021
【数式】
セルA2に入力された住所から都道府県名を切り出す数式
=LEFT(A2,3+(MID(A2,4,1)="県"))
少し解説をしておきます。
【考え方】
LEFT関数でA2の文字列を指定した文字数分切り出します。
文字数は、基本 3文字、MID関数で切り出してみた4文字目が県だったら、論理式の結果としてTRUEが返ってきます。TRUEは1なので、3+1 で、4文字切り出します。
って、わかりにくいですね。
MID関数の部分だけで結果を確認(D列)
LEFT関数の第2引数 文字数の部分、
3+MID(A2,4,1)=”県” がこの数式のポイントです。
この+の後のMID関数だけ取り出して結果を確認してみましょう。
これは、前記のIF関数の第1引数である論理式と一緒です。
=MID(A2,4,1)=”県”
返ってきた結果が
- 「TRUE」であれば4文字目が「県」(真)
- 「FALSE」であれば4文字目は「県」以外(偽)
論理式って、IF関数などの引数として使うだけでなく、それ自体で使うこともできるのです。
「TRUE」「FALSE」を数値にするとどうなるか?(E列)
「TRUE」「FALSE」が数値としてどう表現されるか。
D列の結果に 1を掛けてみるとわかります。
LEFT関数で切り出す文字数は、
- 「TRUE」は「1」なので、「3+1」で「4」
- 「FALSE」は「0」なので、「3+0」で「3」
と、なるわけです。
VLOOKUP関数の第4引数、検索の型を指定する時などに、「FALSE」「TRUE」を指定するかわりに、「0」か「1」(この場合は0以外であればOKです)、と習ったかたは、それを連想すると分かりやすいかもしれません。
まとめ
今回は、住所から都道府県を切り出す方法についてでした。
関数が組み合わされていてわかりにくい時は、数式を分解して、一つ一つの関数がどういう戻り値を返すか、を確認すると分かりやすいと思います。
最初は意味がわからなくて、その仕組が理解できたときは、快感。
薬師丸ひろ子さんのように「カ・イ・カ・ン」って言いたくなります。
(古いたとえで申し訳ないです。わからない方はググって下さい)
Excel、関数、楽しい!って思えてもらえたらうれしいです。
なお、今回埋め込んだExcelは下記の方法で行っています。
ダウンロードもできるようにしてありますので、試してみて下さい。
[clink url=”https://office-taku.com/202004/msoffice/16035.html”]
WordPress使っている方は、スマートフォンで表示した時にiframeの部分だけ横にはみ出して、読みづらくなってしまうことがあります。
[clink url=”https://office-taku.com/202004/web/wordpress/16052.html”]