人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

エクセルを使った住所データ処理の方法についての質問です。

住所(都道府県市区町村地域名まで;番地なし)が入力されたセルが縦に数千並んだデータを持っています。
これを、都道府県・市区町村・地域名と3つのセルに分割する方法をおしえてください。

今:
A県B市C町
D県E市F町

変換後:
A県 B市 C町
D県 E市 F町

のようにしたいです。
方法は、エクセルもしくはエクセルと互換性のあるソフトウェア(Webアプリ含む)を利用したものがよいです。
ソフトウェアはなるべくフリーのものを希望しますが、だめなら駄目でかまわないです。
データ数が多いので、手作業的なものは不可です(一部手作業なら可)。

●質問者: tsubo1
●カテゴリ:コンピュータ インターネット
✍キーワード:Web アプリ エクセル セル ソフトウェア
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● SALINGER
●26ポイント

Excelの機能だけで行う方法です。

データの入った列を選択して、置換から、

県→県,

市→市,

で置換して県と市の後ろにコンマを付けます。

次に、データの入った列を選択したまま

データ→区切り位置でダイアログを開き、

次へ→カンマにチェックして次へ→完了

でセルを分割できます。

ただし、ただしく分割できるのは県や市があるデータだけです。

道や府も置換で対応できますが、市の無い住所の場合はこの方法ではできませんので、

何かの住所のデータベースが必要になるかと思います。


2 ● SALINGER
●27ポイント

先に紹介した方法だとかなり手作業の修正箇所が出てくると思うので、

マクロを使ったより精度の高い方法です。


A列にデータがあるとして、以下のコードを標準モジュールにコピペして実行すると分割します。

この方法でもあらゆる住所には対応できないので、完璧なものは住所録が必要ですが、修正箇所がかなり少なくなるはずです。

Sub Macro()
 Dim i As Long
 Dim lastRow As Long
 Dim s As String
 Dim p1 As Integer
 Dim p2 As Integer
 
 lastRow = Cells(Rows.Count, 1).End(xlUp).Row
 
 For i = 1 To lastRow
 p1 = 3
 s = Cells(i, 1).Value
 Select Case Left(s, 3)
 Case "東京都"
 Cells(i, 1).Value = "東京都"
 Case "大阪府"
 Cells(i, 1).Value = "大阪府"
 Case "京都府"
 Cells(i, 1).Value = "京都府"
 Case "北海道"
 Cells(i, 1).Value = "北海道"
 Case Else
 p1 = InStr(1, s, "県")
 If p1 > 1 Then
 Cells(i, 1).Value = Left(s, p1)
 Else
 Cells(i, 1).Value = ""
 End If
 End Select
 
 p2 = InStr(1, s, "市")
 If p2 < 1 Then
 p2 = InStr(1, s, "区")
 If p2 < 1 Then
 p2 = InStr(1, s, "町")
 If p2 < 1 Then
 p2 = InStr(1, s, "村")
 End If
 End If
 End If
 
 If p2 > 1 Then
 Cells(i, 2).Value = Mid(s, p1 + 1, p2 - p1)
 Cells(i, 3).Value = Mid(s, p2 + 1)
 End If
 Next i
End Sub

3 ● najirane
●27ポイント ベストアンサー

恐ろしく冗長な方法になるかも知れませんが

「ZIPJIS」http://kitagawa.tv/zipjis/zipjis.htm

のような「市町村コード」が収録された住所データベースを入手します。


ACCESS等あれば簡単なのですが、EXCELでやるならZIPJISデータの住所部分を連結したデータを作成した物を対象に、お手元のデータからVlookupして「住所コード」を引き出します。


住所コードは「県|郡市区|町村」に分離出来ますので、これを同時に引き出しておくと楽でしょう。


最後にお手元のデータから上記部分を削除した物が町村以下の「地域名」になります。


以上で分割した素材が揃います。あとは再結合するなり分割したまま使うなりご自由に。


※実はこの方法は某レンタルシステムで、会員記載の(正しくないかも知れない)住所から、正しい住所を導く為に使った方法です。

◎質問者からの返答

ありがとうございます。この方法で作業をおこないます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ