はじめに
住所の文字列から県名だけを抜き出したい、そんな時には文字列操作のエクセル関数を使用します!
県名には2文字のものと3文字のものがあり、便利と評判のフラッシュフィル機能でも完璧に対処することができないことが分かっています。
この記事で紹介する数式では簡潔に県名を抜き出せますので、是非参考にしてみて下さい!
数式だけ分かれば良い方用にこの記事で紹介する数式を置いておきます。
<この記事で紹介している数式>
=LEFT(A2,3+(MID(A2,4,1)="県"))
住所の文字列から県名を抜き出す数式
それでは、例を見ていきましょう!
<例で使用している数式>
=LEFT(A2,3+(MID(A2,4,1)="県"))
え、たったこれだけですか!?
もっとIFのネストとか…
びっくりしますよね~
ポイントはMID関数の論理式です!
え~と
対象文字列の4文字目が『県』であるという意味ですね。
その式が真ならTRUE、偽ならFALSEを返します。
そしてここからが少し難しいのですが、
足し算上TRUEは1、FALSEは0として扱われます。
つまり
真なら1、偽なら0…
その通りです!
その結果に3を足した数値をLEFT関数に引数として渡します。
真なら4、偽なら3になりますね!
分かってきました!
岐阜県海津市…だと4文字目は『海』で3
和歌山県和歌山市だと4文字目が『県』で4
京都府京都市だと4文字目が『京』だから3が
それぞれLEFT関数の第二引数になるんですね!
LEFT関数は左から指定文字列分を抜き出すので
それぞれ岐阜県、和歌山県、京都府を返します!
おおーっ!
でもこの数式、他の人が見て分かってくれますかねえ
TRUEとFALSEを足し算に使う方法は一般的ではないので、
他の人と一緒に編集するファイルでは無難にIF分岐を使いましょう!
<可読性を考慮した数式>
=LEFT(A11,3+IF(MID(A11,4,1)="県",1,0))
あともう一点!
この数式は市や東京23区の名称に『県』から始まるものが
存在しないという前提で成り立っています。
もし市町村合併などで名称変更があれば通用しなくなる可能性があります。
当面は大丈夫そうですけど、気を付けます。
おわりに
私がこの数式に出会ったとき、1と0の分岐ならIF関数使わなくてもできるんだ!という発見で心が躍りました。
しかし本文でも述べている通り、可読性の面から言うと微妙だとは思います。
一般的にTRUEとFALSEを足し算など演算に使用する方法が認知されているようには思えないからです。
こんな分岐の方法もあることを覚えておくと、いつか役立つこともあるかもしれません。
最後までお付き合い頂き、ありがとうございました!
当ブログはエクセル関数の擬人化キャラクター記事をメインコンテンツとしています!
よろしければこちらの記事もどうぞ~!
コメント