- ベストアンサー
所在地の市区郡だけを表示させたい。エクセル関数
所在地の市区郡だけを表示させたい。エクセル関数 市区郡から●丁目まで表示している所在地データ(全国 約2000件)があります。 都道府県名の表示はありません。 このデータを東京都の23区26市4郡にそれぞれ分けるため、はじめに市区郡だけを表示させようと思い、 LEFT関数とIF関数等を考えましたが、市区郡までの文字数が違っており、混乱しています。 お手数ですが、ご教授願います。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
全国2000件の住所データから、東京都の区市郡に属するものを探し てそれぞれ区別できるマーキングをしたいということで、該当する 区市郡だけを抜き出して表示するような列を作れればいいですね。 そうすれば後は並べ替えてチョイチョイですから。 まずは、抽出したい区市郡名の一覧表を用意して下さい。五十音順 に並んでいる必要はありません。「一覧」と名前を定義したことに します。 住所データからleft関数で何文字か取り出して、一覧に一致したら ビンゴなんですが、何文字抜き出せばいいのか判りませんね。一番 短いのが北区の2文字、長いのは武蔵村山市やあきる野市の5文字で 一定しません。そこで、2文字から5文字抜き出した配列を作り、そ れぞれ一覧で検索して一致するものが見つかった一番長い文字数を 採用することにします。たとえば「国分寺市戸倉1丁目」という住所 から{国分;国分寺;国分寺市;国分寺市戸}という配列が出来て、それ をmatch関数で一覧から探すと{#n/a;#n/a;35;#n/a}のように一致し ないところが#n/aエラーになるので、チョイチョイと加工して4とい う数値が得られ、この行は4文字抜き出せばいいなというふうに結論 します。東京じゃない住所だったら最終的に0文字抜き出すので空白 になると。その式はこちら =left(A1,max(not(isna(match(left(A1,{2;3;4;5}),一覧,0)))*{2;3;4;5})) 説明のわりに短いですね。
その他の回答 (2)
- layy
- ベストアンサー率23% (292/1222)
「ALL ABOUT JAPAN」サイトのエクセルの使い方、 で住所の取り出し方の考え方と解説あります。 All About > ビジネス > ビジネススキル > エクセル(Excel)の使い方 > Excel(エクセル)の関数の種類と使い方 リンク先は控えてないのでこのサイトを検索して下さい。 市区町村郡レベルまで書いてあります。
お礼
サイト教えていただきありがとうございます。 この質問する前に何度も検索しましたが、検索ワードがずれていたようで ヒットせずに困っていました。
- KURUMITO
- ベストアンサー率42% (1835/4283)
例えば東京都の場合でしたら、A列にデータがあるとしてB1セルには次の式を入力して下方にオートフィルドラッグします。 =IF(ISNUMBER(FIND("区",LEFT(A1,4))),LEFT(A1,FIND("区",A1)),IF(ISNUMBER(FIND("市",LEFT(A1,5))),LEFT(A1,FIND("市",A1)),IF(ISNUMBER(FIND("郡",LEFT(A1,4))),LEFT(A1,FIND("郡",A1)),"")))
お礼
無事できました。 ありがとうございます。 こんな長い式、自分の今の力ではたどりつけませんでした。 考え方は、No3のlayyさんから教えていただいた「ALL ABOUT JAPAN」サイトの 「住所の取り出し方の考えた方と解説」で勉強しようと思います。
お礼
図有りで訂正な説明ありがとうございます。 無事、表示できました。 このあとピボットで集計しようと考えていたため、 不要な地域が表示されないこの式は非常に助かりました。 初めて使う関数(ISNA)なので、あとで調べてみようと思います。