Excel。IF関数を使わなくても住所から都道府県を簡単に抽出することができます
<LEFT+MID関数>
都道府県から建物名まで、一つのセル内に入力されている場合、都道府県だけを別のセルに抽出したい場合、残念ながら簡単に抽出することができません。
フラッシュフィルとかで抽出できればいいのですが、まだできません。
やはり、関数をつかって抽出するのが、簡単なようです。
上記の表のように、B列に住所が入力されていて、C列に都道府県を抽出する場合、C2には、次の数式を設定するだけで、抽出することができます。
=LEFT(B2,(MID(B2,4,1)="県")+3)
たったこれだけで、あとは、オートフィルで数式をコピーすると都道府県を住所から抽出することができます。
なんとなくIF関数を使うイメージがありますが、IF関数をつかわなくても、LEFT関数とMID関数を組み合わせてつかうだけで、抽出することができます。
さて、そもそも、住所から都道府県を抽出することが面倒なのかというと、「神奈川県・和歌山県・鹿児島県」問題があるからです。
要するに、この3県だけが、県まで含めて4文字なわけです。
北海道も京都府や大阪府。
そして東京都も3文字です。
全部が3文字ならば、LEFF関数をつかって、左から3文字まで抽出とすればいいのですが、そういうわけにはいきません。
なので、左から4文字目が「県」だったら、左から4文字を抽出して、それ以外は左から3文字を抽出する数式を作るわけです。
そのため、IF関数をつかって数式をつくってもいいわけですが、さらに簡単な数式にしたのが、今回のLEFT+MID関数の方法というわけです。
では、数式を確認しておきましょう。
=LEFT(B2,(MID(B2,4,1)="県")+3)
LEFT関数は、左から引数内で指定された文字数を抽出する関数です。
1つ目の引数「B2」は対象となるセル番地なので、B2ですね。
2つ目の引数が、左から何文字目まで抽出するのか指示するわけです。
そこで、MID関数をつかうことで、4文字目が「県」かどうかを判定さえています。
それが、
MID(B2,4,1)="県"
です。
そして、最後に「+3」しているわけですが、この+3も含めて、LEFT関数の2つ目の引数内です。
なぜ、+3をしているのかというと、先程の「MID(B2,4,1)="県"」が、県の場合、このMID関数の式が成立しているので「TRUE」なわけです。
Excelでは「TRUE」を「1」としていますので、「1」+「3」で「4」と算出されるので、左から4文字目が「県」ならば、左から4文字を抽出するというわけです。
「県」でなければ、成立していないので「FALSE」となり、Excelでは「FALSE」を「0」としています。
「0」+「3」で「3」と算出されるため、IF関数をつかわなくても、住所から都道府県を抽出することができるというわけです。
「TRUE」と「FALSE」を考えに入れると、数式がコンパクトになる可能性がありますので、色々試してみるといいかもしれませんね。