• ベストアンサー

エクセル 住所を東京都世田谷区までで区切りたい

エクセル2000を使っています。 H2のセルに東京都渋谷区道玄坂●-●-●と住所が入っています。 I2のセルに東京都渋谷区のように都道府県とその次までを表示させたいです。(それ以降の住所はJ列に表示されてもされなくてもOKです) いろいろ調べましたがわらかなかったのでご教授下さい。 よろしくお願いします。

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

  • ベストアンサー
  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.5

「都道府県の次」まであれば良いんですよね? つまり、東京23区内なら「区」まで、それ以外は「市」または「郡」まで。 それでしたら何とかなるかも。 ざっと見た所、市名に「市」や「郡」が使われている市は ・千葉県市川市 ・千葉県市原市 ・三重県四日市市 ・広島県廿日市市 ・福島県郡山市 ・愛知県蒲郡市 ・奈良県大和郡山市 ・岐阜県郡上市 ・福岡県小郡市 の9つ、対象地名がこの9つ以外なら、最初に「区」「市」「郡」が出てきた所で区切ればいいですね。 添付の図を見てください。E1:E9に上記の地名、 D1に=ISNUMBER(FIND(E1,A$1))*1 を入れてD9までオートフィルしてあります。 A1に対象の住所、B1に↓ =IF(MAX(D1:D9)=1,VLOOKUP(1,D1:E9,2,FALSE),LEFT(A1,MIN(FIND("市",A1&"市区郡"),FIND("区",A1&"市区郡"),FIND("郡",A1&"市区郡")))) どうかな?

その他の回答 (6)

回答No.7

一般的には自治体一覧を用意して、match関数で検索します。 たとえば下記URLから東京都の表を見て、Excelにペーストします。 http://www.lasdec.nippon-net.ne.jp/cms/1,0,14.html 団体名以外の列は不要ですから消して、団体名の頭に「東京都」を 追加し、末尾に空白があるので消し、文字コード順に並べ替えて準 備完了です。あ、ついでに自治体一覧って名前をつけましょうか。 A1に「東京都渋谷区道玄坂●-●-● 」と入ってたら、 B1: =index(自治体一覧,match(A1,自治体一覧)) C1: =mid(A1,len(B1)+1,len(A1)) これで、B1に「東京都渋谷区」、C1に「道玄坂●-●-●」 ときれいに分離できました。

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.6

No.5です。 ちなみに、「区」が使われている市名と、「市」「区」「郡」が使われている郡名は無さそうでした。

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.4

東京23区のように、次に来るのが必ず区と決まっているならやりようがありますが、都道府県というからにはその次に来るのは区市町村すべてあるんですよね? そうなると、どうやって区切ればいいのか・・・。 都道府県の次に最初に来る「区市町村」という文字? では、愛知県四日市市は「愛知県四日市」になるし「東京都東村山市」は東京都東村?! 特定の地域に限られているならともかくオールマイティなものを作るのはちょっと無理ですね。

  • kotoby2003
  • ベストアンサー率15% (280/1755)
回答No.3

残念ですが、エクセルではどんなに頑張っても無理です。 東京都23区だけならなんとか頑張れますが、 神奈川県横浜市 なども含むんですよね? プログラム組んだって難しいですね。住所マスタでもない限り。 住所って、 ~区 か ~市 か ~群 くらいでしたっけ? それなら、できそうな気がしてきました。 上記の条件ならできました。 A1に住所が入っているとします。 =IFERROR(LEFT(A1, SEARCH("区", A1)), "") & IFERROR(LEFT(A1, SEARCH("市", A1)), "") & IFERROR(LEFT(A1, SEARCH("群", A1)), "") です。

  • mo2yakko
  • ベストアンサー率54% (30/55)
回答No.2

No1です。 ちなみに区だからできますが。 "XXX県区XXX区"みたいな名称だと駄目です。 市の場合は千葉県市川市は駄目です(^^;

  • mo2yakko
  • ベストアンサー率54% (30/55)
回答No.1

これでどうでしょう? =LEFT(H2,FIND("区",H2,1))