住所を都道府県・市区町村・それ以降に分割

住所を貼り付けるか、CSV・Excelファイルを入れると、都道府県・市区町村・それ以降の3つの列に分けます。神奈川県などの4文字の県、郡の付いた町村、政令指定都市の区にも対応しています。

分ける住所

住所の入れ方

Excelの住所の列をコピーして、そのまま貼り付けられます。いくつかの列をまとめて貼り付けたときは、使う列を選べます。空いている行も1行として数えるので、結果を元の表の横に貼り付けても行がずれません。

分け方

区を含めないと「札幌市」と「中央区北1条西…」に分けます。郡を含めないと「余市町」だけにします(郡の名前は出しません)。郵便番号の列を出さないときは、先頭の郵便番号は結果に入りません。

分けた結果

住所を貼り付けるか、ファイルを入れると、ここに分けた結果が並びます。

市区町村名:日本郵便「郵便番号データ(KEN_ALL)」の名前を使っています。

使い方

  1. 「分ける住所」に住所を1行に1つずつ貼り付けます。Excelの住所の列をそのままコピーして貼り付けるのがいちばん早いです。1行目が「住所」などの見出しなら、見出しとして扱います。
  2. CSVやExcelのファイルを使うときは「ファイルから」を選んでファイルを入れます。住所の列は、見出し(「住所」「所在地」など)や中身から自動で選びます。違うときは「住所の列」で選び直してください。
  3. 結果の表で「状態」を確かめます。「確認が必要な行だけ表示」にすると、補完・要確認・見つからないの行だけを見られます。
  4. 「分けた列をコピー」でExcelの住所の列の右に貼り付けるか、CSVで保存します。ファイルを入れたときは、元の表の右に分けた列を足したファイルも保存できます(Excelから読んだときは.xlsx)。

分け方のしくみ

先頭にある都道府県名(47都道府県)を切り出したあと、日本郵便の郵便番号データに入っている市区町村名と照らし合わせて、いちばん長く一致する名前を「市区町村」にします。残りが「それ以降」(町域・番地・建物名など)です。

  • 照らし合わせる市区町村名は1,892件です。政令指定都市20市の区(171区)、東京23区、郡の付いた町村(917町村)が入っています。
  • 「余市郡余市町」のように郡を書いた住所も、「余市町」のように郡を書かない住所も見つけます。
  • 政令指定都市は、「札幌市中央区」のように区まで書いた住所も、区を書かない「札幌市」も見つけます。
  • 全角と半角、空白、「ヶ」と「ケ」、「檜」と「桧」、「龍」と「竜」などの違いは同じものとして照らし合わせます。結果には、入っていた文字をそのまま出します。
  • 「〒060-0042 北海道…」のように先頭に郵便番号があれば、郵便番号の列に分けます。

「状態」の見方

状態意味
OK都道府県と市区町村が見つかりました。
補完都道府県が書かれていなかったので、市区町村の名前から補いました。全国で1つしかない名前のときだけ補います。「東京千代田区」のように「都」「府」「県」を省いた住所も、正しい名前に直して補完にします。
要確認都道府県が書かれておらず、同じ名前の市区町村が2つ以上の都道府県にあるときです(都道府県は空欄のままにします)。書かれた都道府県にその市区町村がないときや、政令指定都市のあとに今はない区の名前があるときも要確認にします。
見つからない市区町村の名前が見つかりませんでした。合併前の古い名前や書き間違いのことがあります。都道府県より後ろを全部「それ以降」に入れています。

たとえば合併前の「浦和市」は、いまのデータにはありません。今の名前に直してから、もう一度分けてください。

政令指定都市の区が変わった例もあります。浜松市は2024年1月1日に区を7つから3つ(中央区・浜名区・天竜区)に変えました。古い住所の「浜松市中区元城町103番地」は、今は「浜松市中央区元城町103番地」です。このツールでは古い区名を「要確認」にするので、浜松市の案内を見て直してください(中区・東区・西区・南区は中央区、浜北区は浜名区になりました。北区は地区によって中央区か浜名区に分かれました)。

都道府県がないと決められない名前

都道府県を書かない住所は、市区町村の名前から都道府県を補います。ただ、次の名前は2つ以上の都道府県にあるので、補わずに「要確認」にします。

  • 市:伊達市(北海道・福島県)、府中市(東京都・広島県)
  • 町・村(郡を書かないとき):松前町(北海道・愛媛県)、森町(北海道・静岡県)、清水町(北海道・静岡県)、池田町(北海道・福井県・長野県・岐阜県)、日高町(北海道・和歌山県)、南部町(青森県・山梨県・鳥取県)、川崎町(宮城県・福岡県)、美里町(宮城県・埼玉県・熊本県)、美郷町(秋田県・島根県・宮崎県)、金山町(山形県・福島県)、小国町(山形県・熊本県)、川西町(山形県・奈良県)、朝日町(山形県・富山県・三重県)、昭和村(福島県・群馬県)、高山村(群馬県・長野県)、南牧村(群馬県・長野県)、明和町(群馬県・三重県)、美浜町(福井県・愛知県・和歌山県)、高森町(長野県・熊本県)、川上村(長野県・奈良県)、日野町(滋賀県・鳥取県)、太子町(大阪府・兵庫県)、広川町(和歌山県・福岡県)

郡まで書いてあれば(例:上川郡清水町)、ひとつに決まるので補完します。

Excelの関数で分けようとすると面倒なところ

都道府県だけなら、Excelの関数でも分けられます。都道府県名は3文字か4文字で、4文字は神奈川県・和歌山県・鹿児島県の3つなので、4文字目が「県」かどうかで切り出す長さを変えます(A2に住所があるとき)。

=IF(MID(A2,4,1)="県",LEFT(A2,4),LEFT(A2,3))

残りは、住所の文字数から都道府県の文字数を引いた分を、右から取り出します(B2に都道府県があるとき)。SUBSTITUTE関数で都道府県名を消す方法は簡単ですが、市区町村名などに都道府県名と同じ文字列があると、うまくいかないことがあります。

=RIGHT(A2,LEN(A2)-LEN(B2))

また、Excelの「検索と置換」では正規表現が使えないので、「先頭にある『県』だけを消す」といった置き換えもできません。

市区町村まで分けようとすると、もっと難しくなります。「市」「区」「町」「村」「郡」の文字で区切ると、次のような名前で失敗します。

  • 名前の中に「市」がある:市川市(千葉県)、四日市市(三重県)、廿日市市(広島県)、野々市市(石川県)
  • 名前の中に「町」がある:町田市(東京都)、大町市(長野県)
  • 名前に「郡」が入った市:郡山市(福島県)、大和郡山市(奈良県)、蒲郡市(愛知県)、郡上市(岐阜県)。「郡」が2回出てくる赤穂郡上郡町(兵庫県)もあります
  • 政令指定都市の区:「札幌市中央区」を「市」で切ると、「中央区」が後ろに回ります

このツールは、市区町村の名前の一覧と照らし合わせて分けるので、こうした名前でも正しく分けられます。

よくある質問

番地や建物名も分けられますか?

分けません。町域・番地・建物名は「それ以降」にまとめて入ります。郵便番号から町域を出したいときは、郵便番号から住所に変換するツールが使えます。

「補完」の行はそのまま使っても大丈夫ですか?

補うのは、全国で1つしかない市区町村名のときだけです。ただ、元の住所の書き間違いまではわからないので、大事な書類に使うときは念のため確かめてください。

入れた住所や、読み込んだファイルはどこかに送られますか?

送られません。市区町村の一覧をこのサイトから読み込み、分ける作業はこのブラウザの中で行います。ファイルの中身はサーバーに送りません。

何件まで分けられますか?

件数の上限は決めていません。1万行を超えても、少しずつ区切って処理するので画面は固まりません。画面の表には最初の200行だけを出しますが、コピーと保存にはすべての行が入ります。

Excelファイルに列を足して保存すると、書式や数式はどうなりますか?

保存されるのは、選んだシートの値(画面に見えている文字)に分けた列を足した新しいファイルです。書式・数式・ほかのシートは入りません。元のファイルはそのまま残ります。

CSVの文字コードはどちらを選べばいいですか?

Excelで開くなら、UTF-8(BOM付き)とShift_JISのどちらでも開けます。Shift_JISのCSVを読み込んだときは、はじめからShift_JISを選んでいます。「𠮷(つちよし)」や「鷗」のようにShift_JISにない文字は「?」になるので、そのときは保存したあとにお知らせを出します。

出典