都道府県のうち都、道、府はいずれも3文字、県は3文字か4文字です。そこで、住所の3文字目が「都」「道」「府」「県」のいずれかであれば住所に3文字の都道府県、4文字目が「県」であれば住所に4文字の県が含まれていることになります。

また、いずれでもなければ住所に都道府県が含まれていないことになります。これらの条件をSwitch関数の引数に指定すれば、住所から都道府県を取り出せます。

その際、3文字目の判定にはIn演算子を使用します。 In演算子は「データ In (値1, 値2, ...)」の形式で、かっこ内に指定したいずれかの値とデータが一致する場合にTrueを返します。

住所から市区町村を抜き出すには、住所に含まれる都道府県をReplace関数で長さ0の文字列「""」に置き換えます。その際、都道府県が入力されていない場合のエラーに備えて、Nz関数も併用します。

関数の解説

Nz (, 変換値

]が Null の場合は[変換値]を返し、Null でない場合は[]を返す

Switch条件1, 値1, 条件2, 値2...)

条件1]が成り立つときは[値1]、[条件2]が成り立つときは[値2]を返す。いずれも成り立たないときは Null を返す