住所の自動分割がうまくいかない理由:郵便番号データで確かめた5つの落とし穴

顧客リストの住所を「都道府県・市区町村・それ以降」に分けようとすると、例外が次々に出てきます。日本郵便の郵便番号データを実際に集計して、つまずきやすい点と事前に決めておくことを整理しました。
この記事が答える問い
顧客リストや注文データの住所を、「都道府県」「市区町村」「それ以降」の列に分けたい。最初は簡単そうに見えても、実際にやってみると例外が次々に出てきて、手作業での修正が終わらなくなることがあります。
この記事では、日本郵便が公開している郵便番号データ(2026年9月30日更新分、UTF-8形式)を実際に集計して、住所の自動分割でつまずきやすい点を整理します。件数は、この版のデータを自分で数えたものです。
結論
- 郵便番号から住所は1つに決まるとは限らない。郵便番号は「住所の候補を絞るもの」として扱う
- 市区町村名だけでは都道府県が決まらないことがある。判定は必ず都道府県とセットで行う
- 「郡」や政令指定都市の「区」をどの列に入れるかは、分割を始める前にルールとして決めておく
- 自動で分割できない住所は、無理に分けずに人が確認する列に回す
落とし穴1:郵便番号から住所が1つに決まらない
日本郵便のデータには、郵便番号と住所の対応が1対1にならないケースを示す項目があります。説明ページでは、次の2つが区別されています。
- 1つの町域が2つ以上の郵便番号で表される場合:丁目や番地などによって郵便番号が異なる
- 1つの郵便番号で2つ以上の町域を表す場合:郵便番号と番地だけでは住所が特定できない
集計すると、前者に当たる行は2,628行、後者に当たる行は5,145行ありました。たとえば郵便番号「004-0000」は、札幌市厚別区と札幌市清田区の2つの区に登録されています。
郵便番号から住所を自動で補完する機能は便利ですが、候補が複数ある郵便番号では、どれか1つを自動で選ばないようにする必要があります。候補を表示して人が選ぶか、元の住所の文字列と照合して決めます。
落とし穴2:「以下に掲載がない場合」は住所ではない
データの町域の欄には、「以下に掲載がない場合」と書かれた行があります。この版では1,870行ありました。
説明ページによると、これは探している町域が見つからない場合に書く番号であり、町域を特定するものではありません。郵便番号から住所を補完する処理でこの文字列をそのまま住所に入れてしまうと、「札幌市中央区以下に掲載がない場合」のような住所ができあがります。取り込むときは、この行の町域を空として扱うようにしておきます。
落とし穴3:同じ市区町村名が別の都道府県にもある
「府中市」は東京都と広島県の両方にあります。「伊達市」も北海道と福島県にあります。住所の文字列から市区町村名だけを探して都道府県を補うと、こうした住所で誤った都道府県が入ります。
郵便番号データでは、町村名の前に郡名が付いています(例:「西村山郡朝日町」)。郡名を外して町村名だけで比べると、同じ名前が複数の都道府県に出てくるものはさらに増えます。たとえば「池田町」は、北海道・福井県・長野県・岐阜県の4道県にあります。
都道府県が書かれていない住所は、市区町村名から自動で補わないのが安全です。郵便番号が分かる場合はそちらで照合し、分からない場合は確認用の列に回します。
落とし穴4:「郡」と「区」をどの列に入れるか決めていない
郵便番号データの市区町村名の欄には、「石狩郡当別町」のように郡名を含むものや、「札幌市中央区」のように政令指定都市の区まで含むものがあります。
一方で、実際の顧客データでは郡名が省略されていたり、区が書かれていなかったりします。分割のルールを決めないまま始めると、同じ町が「郡あり」「郡なし」の2通りで集計されることになります。
始める前に、次の点を決めておきます。
- 郡名は市区町村の列に含めるか、省くか
- 政令指定都市の区は、市区町村の列に含めるか、別の列にするか
- 東京23区はどう扱うか
どれが正しいということではなく、そのデータを何に使うかで決めます。特に地域別の集計に使う場合は、どちらかに表記を揃えておかないと、同じ地域が別々に数えられてしまいます。
落とし穴5:「それ以降」の部分には決まった形がない
市区町村より後ろの部分は、書き方がさらにばらばらです。
- 「1丁目2番3号」「1-2-3」「1-2-3」のように、数字やハイフンの書き方が混ざる
- 建物名や部屋番号が、番地と同じ列に続けて書かれている
- 京都市の住所には、「上る」「下る」「西入」のような通り名を使った表記がある
最後の点は、郵便番号データ自体にも表れています。京都府のデータのうち、町域の欄に「上る」または「下る」を含む行が213行ありました。通り名の部分も、町域の一部として登録されているということです。
「それ以降」の部分を番地と建物名にまで自動で分けようとすると、例外への対応が終わりません。分割は市区町村までにして、それ以降は1つの列のまま残すほうが、多くの業務では現実的です。
公式データを使うときの注意
郵便番号データは毎月更新されています。取り込んだまま放置すると、市町村の合併や新しい郵便番号に追いつけなくなるため、更新の手順も最初に決めておきます。
形式にも注意が必要です。従来の形式は文字コードがShift_JISで、町域名が長い場合は1つの住所が複数の行に分割されています。2023年6月の更新分からは、1つの郵便番号のデータを1行で記載したUTF-8形式のデータも追加で公開されています。新しく取り込みを作るなら、UTF-8形式のほうが扱いやすいはずです。
チェックリスト
- 郵便番号に複数の候補がある場合、自動で1つを選んでいないか
- 「以下に掲載がない場合」を住所として取り込んでいないか
- 都道府県がない住所を、市区町村名だけで補っていないか
- 郡名と政令指定都市の区の扱いを、列ごとに決めたか
- 市区町村より後ろを、無理に細かく分けようとしていないか
- 自動で分けられなかった住所を、人が確認する列に回しているか
- 郵便番号データを定期的に更新する手順があるか
まとめ
住所の分割は、ルールを決めずに始めると例外処理だけで時間がなくなります。郵便番号データを実際に見ると、郵便番号も市区町村名も、それだけでは住所を1つに決められないことが分かります。
すべてを自動で正しく分けることを目標にせず、確実に分けられるものだけを自動で処理し、残りを人が確認する。この線引きを最初に決めておくのが、住所データを壊さずに整理するいちばんの近道です。
参考資料

Kwangmo Yang
Freelance Developer & Translator · Based in Osaka, Japan
大阪を拠点に、AI業務自動化、Web・ツール開発、日韓の言語サービスを手がけています。
プロフィールを見る

