No.2
- 回答日時:
この手のソリューションは立派に万単位のお金を頂ける内容です。
しかしながら「住所分割」でググったら、結構出てきましたよ。
http://pc.nikkeibp.co.jp/pc21/tech/excel36/35/in …
http://www2.odn.ne.jp/excel/waza/function.html#S …
などがありました。
ご参考まで...
No.3
- 回答日時:
福岡県糟屋郡新宮町桜山手_____新宮__新宮町桜山手
福岡県糟屋市新宮町桜山手_____新宮__新宮町桜山手
福岡県糟屋区新宮町桜山手_____新宮__新宮町桜山手
福岡県郡山郡新宮町桜山手_____新宮__新宮町桜山手
福岡県糟市川市新宮町桜山手__新宮__新宮町桜山手
福岡県糟市川市市田町桜山手__市田__市田町桜山手
=GetTown(A1)
=ReAltAddress(CutString(AltAddress(A1), "区,郡,市", 2))
町名と町名と字番地を抜き出してみました。
もちろん、上記の6つだけテストをしたに過ぎません。
そういうことで、信頼性は今一つです。
要は、単純にCutStr関数で抜き出すと’郡山’、"市川"、"市田"が邪魔します。
そこで、予めこれらを置換しておいて抜き出した後にも再置換して不具合を解消しています。
何とも原始的な手法ですが、まあ、<事足りればよし>じゃないですか?
最も簡単に抜き出す手法かと思います。
もちろん、事前置換と事後置換のデータセットは質問者の課題です。
Public Function GetTown(ByVal Text As String) As String
GetTown = ReAltAddress(CutStr(CutString(AltAddress(Text), "区,郡,市", 2), "町", 1))
End Function
Public Function CutStr(ByVal Text As String, _
ByVal Separator As String, _
ByVal N As Integer) As String
Dim strDatas() As String
strDatas = Split("" & Separator & Text, Separator, , 0)
CutStr = strDatas(N * Abs((N <= UBound(strDatas))))
End Function
Public Function CutString(ByVal Text As String, _
ByVal Separator As String, _
ByVal N As Integer) As String
Dim I As Integer
Dim M As Integer
Dim strSeparator() As String
Dim strReturn As String
strSeparator() = Split(Separator, ",")
M = UBound(strSeparator())
For I = 0 To M
strReturn = strReturn & CutStr(Text, strSeparator(I), N)
Next I
CutString = strReturn
End Function
Public Function AltAddress(ByVal Text As String) As String
Text = Replace(Text, "郡山", "こおり山")
Text = Replace(Text, "市川", "いち川")
Text = Replace(Text, "市田", "いち田")
AltAddress = Text
End Function
Public Function ReAltAddress(ByVal Text As String) As String
Text = Replace(Text, "いち田", "市田")
ReAltAddress = Text
End Function
No.4
- 回答日時:
問題点1、都道府県を抜き出せない。
(北海道=>北海)問題点2、OO市OO市OO市、OO町OO町への対応が困難。
問題点3、事前変換、事後変換の要領が拙い。
問題点4、CutStr関数、CutString関数と2つ用いる意味がない。
先の回答は、このように4つ程の問題点を含んでいました。
要は、余りにも完成度が低かったということです。
とりあえずお知らせしておきます。
No.5ベストアンサー
- 回答日時:
[イミディエイト]
? CS("北海道旭川市山川町大字松田鎧町114番地", "道", 1, True )
北海道
? CS("北海道旭川市山川町大字松田鎧町114番地", "町", 2,,True)
大字松田鎧町114番地
"道"、"町"で区切られた文字の1番目と2番目を求めています。
従来のCutStr関数と違うのは、区切り子を含めて返すか否かを4番目の引数で指定できること。
従来のCutStr関数と違うのは、2番目以降の全てを連結して返すか否かの引数も5番目に指定できること。
これで、都道府県の抜き出しやOO市OO市OO市、OO町OO町パターンの住所に対応できます。
[イミディエイト]
? CutStr("北海道旭川市山川町大字松田鎧町114番地", "都,道,府,県", 1, True )
北海道
? CutStr("北海道旭川市山川町大字松田鎧町114番地", "都,道,府,県", 2, True )
旭川市山川町大字松田鎧町114番地道
そういうことで、上述のCS関数を内部的にコールする CutStr関数(先の CutString())も引数を増やしています。
これで、事前変換と事後変換の拙さを克服すれば、自在に住所を分割抽出できる筈です。
試しに、CutStr関数を用いて SplitAddress関数を作成してみます。
[イミディエイト]
? SplitAddress("北海道旭川市山川町大字松田鎧町114番地", 都道府県)
北海道
? SplitAddress("北海道旭川市山川町大字松田鎧町114番地", 市区郡)
旭川市
? SplitAddress("北海道旭川市山川町大字松田鎧町114番地", 町村)
山川町
? SplitAddress("北海道旭川市山川町大字松田鎧町114番地", 番地)
大字松田鎧町114番地
<エクセルシートの場合>
北海道旭川市山川町大字松田鎧町114番地___北海道<-------------------=SplitAddress(A1, 1)
北海道旭川市山川町大字松田鎧町114番地___旭川市<-------------------=SplitAddress(A2, 2)
北海道旭川市山川町大字松田鎧町114番地___山川町<-------------------=SplitAddress(A3, 3)
北海道旭川市山川町大字松田鎧町114番地___大字松田鎧町114番地<------=SplitAddress(A4, 4)
SplitAddress関数は、非常にシンプルなものです。
ですから、上述のテストと併せてそのコードを見れば新CutSTr関数の使い方は判ると思います。
※少々、長くなりましたので、新CutStr関数とSplitAddress関数は別回答とします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) LEFT関数で文字数を指定しないで取りだす方法 7 2023/06/30 09:49
- Excel(エクセル) エクセルで列の行の重複の検索方法を教えてください。 8 2022/10/11 14:51
- Excel(エクセル) エクセルの数式で教えてください。 3 2023/06/06 10:13
- Excel(エクセル) エクセル 関数 指定の繰り返しの回数 以降(以前)を削除するには、 2 2022/04/24 10:29
- 郵便・宅配 住所一覧にない住所があるのはなぜですか 2 2023/02/28 11:38
- Excel(エクセル) 【Excel】住所に郵便番号を付記する方法 3 2022/05/07 17:15
- Visual Basic(VBA) VBA初心者です 検索した数字の行に色をつける 5 2023/02/13 14:22
- Visual Basic(VBA) エクセルの数式で教えてください。 1 2023/07/31 15:49
- Excel(エクセル) エクセルの関数を教えてください。② 9 2023/05/25 15:28
- Excel(エクセル) エクセルの条件付き書式で*を使いたい 4 2022/05/13 16:49
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
住所に記されてある「大字」や...
-
住所で〜市〜町の場合丸をつけ...
-
住所に小字に表示がない場合
-
住所の大字ってなんですか?
-
大字の意味
-
セメント工場の立地条件について
-
宛先住所書く時、「大字」「小...
-
当町、貴町の読み方を教えて下...
-
木へんに母で何と読みますか
-
日本橋蛎殻町ってなんて読むん...
-
Google Earth 画面上のアイコン...
-
「三内丸山遺跡」の読み間違い
-
「上野」「下野」はなぜ「こう...
-
Microsoft Office Visio2013で...
-
日本で一番民度が低い地域はど...
-
「台」のつく地名とその土地の...
-
滋賀・加賀・伊賀・甲賀・佐賀....
-
地名の読み方です。
-
北京、南京、東京、はあるのに...
-
琵琶湖の名前の由来
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
おすすめ情報