• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel 住所分け)

Excelで住所を分ける方法

このQ&Aのポイント
  • Excelで住所を分ける方法についてご紹介します。都道府県、市区郡、町名・番地、ビル名の4つの情報に分割したい場合に便利な方法です。具体的な手順や注意点を解説します。
  • Excelで住所を分ける方法を解説します。都道府県、市区郡、町名・番地、ビル名の4つに情報を分割することができます。具体的な方法や使い方をご紹介します。
  • Excelを使用して住所を分割する方法をご紹介します。都道府県、市区郡、町名・番地、ビル名の情報に分けることができます。手順やポイントなどを詳しく解説します。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

全国の市区郡の一覧があれば、F列とG列までは分離できます。 F列は「LEFT関数で、元の住所から先頭4文字」を抜き出して、それが「神奈川県」「和歌山県」「鹿児島県」のどれかだったら、その4文字で確定です。 3つのどれでも無かったら「LEFT関数で、元の住所から先頭3文字」を抜き出せば、その3文字で確定です。上記以外の都道府県は「必ず3文字」ですからね。 次に、以下のような「全国の市区郡の一覧」を使って、G列を抜き出します。 北海道札幌市中央区 北海道札幌市白石区 北海道札幌市豊平区 北海道札幌市厚別区 北海道札幌市手稲区 北海道札幌市清田区 北海道札幌市東区 北海道札幌市西区 北海道札幌市南区 北海道札幌市北区 北海道樺戸郡 北海道空知郡 北海道中川郡 北海道利尻郡 北海道日高郡 北海道石狩郡 北海道上磯郡 北海道山越郡 北海道檜山郡 北海道久遠郡 北海道寿都郡 北海道虻田郡 北海道古宇郡 北海道余市郡 北海道空知郡 北海道雨竜郡 北海道上川郡 北海道苫前郡 北海道枝幸郡 北海道斜里郡 北海道常呂郡 北海道紋別郡 北海道虻田郡 北海道勇払郡 北海道幌泉郡 北海道河東郡 北海道河西郡 北海道川上郡 北海道標津郡 (以下略、このサンプルデータは「北海道」のみ) この一覧表は、念のため「文字数が長い方が上に来る」ように作ります。 一覧を上から順に1つづつ持ってきて、文字数を数えます。 例えば「北海道樺戸郡」を持って来たら「6文字」です。 そうしたら「元の住所」の先頭から「6文字」を取り出して、一覧の文字列と同じかどうか調べます。 一致したら「取り出した6文字」から「都道府県名」をMID関数で削ります。 つまり「MID(一覧から取り出した物,都道府県名の長さ+1,一覧から取り出した物の長さ)」で取り出します。 一覧から取り出したのと一致してない場合は、一覧から次の市区郡名を取り出し、同じ事を繰り返します。 一覧をすべて調べて不一致だった場合は、住所表示変更前の旧住所の表記になっている可能性があります。 なお、一覧表で「文字数が長い物を上にしておく」のは、ちゃんと理由があります。 日本の住所には「途中までまったく同じで、最後に数文字増えている住所」ってのがあります。 例えば、兵庫県南あわじ市には 兵庫県南あわじ市湊 兵庫県南あわじ市湊里 と言う2つの地名があります。 一覧表で「兵庫県南あわじ市湊」の方が上にあって、それを先にチェックしたら、間違った判定をしてしまいます。 「兵庫県南あわじ市湊里○○-△△」と言う住所を処理する時に、一覧表に「兵庫県南あわじ市湊」の方が先にあったら 兵庫県 南あわじ市湊 里○○-△△ と言うように、間違った分離処理を行なってしまいます。 本当は 兵庫県 南あわじ市湊里 ○○-△△ と分離しないといけませんから「兵庫県南あわじ市湊里」を先に調べて、違ったら「兵庫県南あわじ市湊」を調べる、と言うように「文字列が長い方を先に調べる必要がある」のです。 「元の住所」から「F列とG列を足した長さ」を先頭から削ると、残り(H列とI列の元になる物)が作れます。 残念ですが、残りの「H列とI列」は、機械的には自動で分離出来ないので、人間が手作業で分離しないといけません。

meronsodanomu
質問者

お礼

ありがとうございました。

その他の回答 (2)

回答No.3

因みに。 他の回答にある通り、住所には「県」「郡」「市」の文字を複数含む物がありますから「これらの文字が現われた場所で分離」ではダメです。 例えば、兵庫県南あわじ市には 兵庫県南あわじ市市市(ヒョウゴケンミナミアワジシイチイチ) と言う住所が実在します。 「市」が3つ並びますが、誤植ではありません。

meronsodanomu
質問者

お礼

ありがとうございました。

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.1

 無理です。  地域名に「県」、「府」、「市」等の文字が含まれている所もありますから、どこまでが都道府県名で、どこからどこまでが市区郡名かを判定するためには、全国各地の都道府県名や市区郡名のリストをExcel上に作成しておき、そのリストに存在する文字列であるのか否かで都道府県名や市区郡名を決める必要があります。  尤も、全国の都道府県名や市区郡名の数は限られていますから、そのリストを作成する事はさほど難しくはありません。  一方、全国の「以降の住所(町名・番地)」の数は膨大なものとなりますし、区画が分割されるなどといった事により新たな番地が次々と生まれて来ますから、全てを網羅したリストなど到底作る事は出来ません。  末尾が数字になっている所までを番地として扱えば良いと考えるかも知れませんが、例えば  ■■県○○市△△町1番地2号××マンション 等といった類の元データがあった場合、 「以降の住所(町名・番地)」が「△△町1番地2号」で、「ビル名」が「××マンション」 なのか、それとも 「以降の住所(町名・番地)」が「△△町1番地」で、「ビル名」が「2号××マンション」 なのか、どうやって区別をすれば良いというのでしょうか?  こんな区別をする際には人間の判断力に任せるしかなく、パソコンなどの機械に出来る事ではありません。

meronsodanomu
質問者

お礼

無理なのは大体わかってましたがもしかしたらと思い質問しました。 ありがとうございました。

関連するQ&A

専門家に質問してみよう