[[20220802142839]] 『市区町村の切り出し』(おはす) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『市区町村の切り出し』(おはす)

B列とC列に市区町村を切り出したいです。
(2)のように大阪市や横浜市などの場合、●●市の後に●●区がある場合、
●●区まで抜き出すという式を組みたいのですが、見つけることができません。

(1)
A列 東京都港区赤坂●丁目●-●-● ABCビル5F
B列 東京都
C列 港区

(2)
A列 神奈川県横浜市港北区新横浜●丁目3番100号
B列 神奈川県
C列 横浜市港北区

< 使用 Excel:Excel2019、使用 OS:Windows10 >


当サイトの校内全文検索が役立つでしょう
(新宿区市谷本村町) 2022/08/02(火) 14:51

> ●●市の後に●●区がある場合、●●区まで抜き出すという式を組みたいのですが
あいまいな情報だけで市区町村を区分けしたいという質問はよくみかけますが 大体が
深い考えがあるでもなく「どこかにある」ものを探しているだけなので解決しないこ
とが多いです。

本気でやるなら大量の例外処理をどう処理するのか考える必要があります。
PC相手に「適当に」は通じないので。

・明石市のように政令指定都市でもないのに地名に「区」があるところはどうするか
・札幌市のように「街区」が含まれている場合はどうするか
・ビル名などに「区」が入っている場合はどうやって無視するか
・郡についてのルールはどうなっているのか
・東京都小笠原村父島はどこで区切るのか

など ちらりと見る限りでも「これどうするの?」が出てきます。

郵便番号があるならそれを基にして区切ったほうがいいと思います。
(d-q-t-p) 2022/08/02(火) 16:20


アドバイスありがとうございます。 郵便番号検索ができればいいのですが郵便番号は記載がないです。

(おはす) 2022/08/02(火) 17:05


 1.郵便局のWebページから都道府県一覧(全国一括)をダウンロードする。
https://www.post.japanpost.jp/zipcode/dl/kogaki-zip.html

 2.Zipファイルなので、それを解凍してから、エクセルに当該CSVを読み込む(12万件ある)

 3.都道府県名と市区町村の列だけ取り出して、重複の削除を行う(1896行になった)

 4.それを本番シートのF,G列に移し、H1セルに以下の数式を入れて、1896行目までコピーする
    H1セル =F1&G1

 5.下式を入力して、下にコピーする
  (1) B1セル =IF(A1="","",VLOOKUP(LEFT(A1,2)&"*",F:F,1,0))
  (2) C1セル =TEXTJOIN(",",TRUE,IFERROR(INDEX(G:G,ROW(H$1:H$1896)*MATCH(H$1:H$1896&"*",A1,FALSE)),""))

 <結果図>
 行 ____________________A____________________ ____B____ ______C______ _D_ _E_ ___F___ ______G______ _________H_________
  1 東京都港区赤坂●丁目●-●-● ABCビル5F   東京都    港区                  北海道  札幌市中央区  北海道札幌市中央区 
  2 神奈川県横浜市港北区新横浜●丁目3番100号  神奈川県  横浜市港北区          北海道  札幌市北区    北海道札幌市北区   
  3 東京都新宿区市谷本村町                    東京都    新宿区                北海道  札幌市東区    北海道札幌市東区   
  4 東京都小笠原村父島                        東京都    小笠原村              北海道  札幌市白石区  北海道札幌市白石区 
  5 千葉県市原市                              千葉県    市原市                北海道  札幌市豊平区  北海道札幌市豊平区 
  6 広島県廿日市市                            広島県    廿日市市              北海道  札幌市南区    北海道札幌市南区   
  :   :                                         :         :             :   :   :       :             :                 
 658                                                                          東京都  新宿区        東京都新宿区
  :   :                                         :         :             :   :   :       :             :         

(半平太) 2022/08/03(水) 12:30


 > (2) C1セル =TEXTJOIN(",",TRUE,IFERROR(INDEX(G:G,ROW(H$1:H$1896)*MATCH(H$1:H$1896&"*",A1,FALSE)),""))

        こっちに変更します。
      ↓
   (2) C1セル =IF(A1="","",INDEX(G:G,AGGREGATE(15,6,ROW(H$1:H$1896)*MATCH(H$1:H$1896&"*",A1,FALSE),1)))

(半平太) 2022/08/03(水) 12:45


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.