アプリ版:「スタンプのみでお礼する」機能のリリースについて

アクセスで住所一覧表から
何丁目まで抜き出したいです。
例えば、
東京都千代田区有楽町1丁目-1-2
の場合、東京都千代田区有楽町1
千葉県浦安市舞浜1-1
の場合、千葉県浦安市舞浜1
丁目があったり、-で区切られる場合や、
丁目が2桁だったりしますが、
何かいい方法ありませんか?

質問者からの補足コメント

  • そーなんですね。。。
    件数が多くて手打ちは難しくて、、、

      補足日時:2020/07/07 19:20
  • または数字の前までとか-の前まで抜きだすとかできますか?

      補足日時:2020/07/07 19:21
  • 郵便番号ないんです。。
    住所から郵便番号ってつけれますか?
    1000件くらいはあります。

      補足日時:2020/07/07 19:54
  • 郵便番号のところまで抜き出せれば良い感じです。
    でも郵便番号がなくて、、、

      補足日時:2020/07/07 19:56
  • 別テーブルに取り込んだあと、どうやったら
    郵便番号つけれますか?
    初心者ですみません

      補足日時:2020/07/07 21:53

A 回答 (7件)

No.4の方法を試しにExcelで検証してみるとこんな感じです。


ちなみにExcelなのでそのままでは今回の回答にはなってません。

Sub megu()
Dim re As Object
Dim v, i As Integer

Set re = CreateObject("VBScript.RegExp")

v = Array("東京都千代田区有楽町1丁目-1-2", "千葉県浦安市舞浜1-1", "東京都教えて市GOO町123丁目365番地36")

For i = 0 To UBound(v)
re.Pattern = "^(.*?丁目)"

If re.Test(v(i)) Then
Debug.Print v(i), "⇒", re.Execute(v(i))(0).SubMatches(0)
Else
re.Pattern = "^(.*?)[--]"
Debug.Print v(i), "⇒", re.Execute(v(i))(0).SubMatches(0)
End If

Next

Set re = Nothing
End Sub

出力結果:

東京都千代田区有楽町1丁目-1-2 ⇒ 東京都千代田区有楽町1丁目
千葉県浦安市舞浜1-1 ⇒ 千葉県浦安市舞浜1
東京都教えて市GOO町123丁目365番地36 ⇒ 東京都教えて市GOO町123丁目
    • good
    • 0

郵便番号を使った方法について回答があったのでその場所を提示したまでです。



私としては『丁目』と『番地』の区別が付けられない - の存在がデータの中にあるかどうかが気になっているのです。
ちなみにうちは田舎なので『あああ〇〇-△』で終わりますが『あああ○○番地△号』と言う感じですから。
    • good
    • 0

あ、でも。


- で区切るにも『丁目』ではなく『番地』の場合もありますしね。

ちなみに郵便番号ってなら郵政省のHPにありますよ。
https://www.post.japanpost.jp/zipcode/download.h …
CSV形式なので別テーブルに取り込むのも良いかも。
    • good
    • 0

初級者なので間違っているかもですが。



ユーザー定義関数で正規表現を用いて切り出すとかって方法があったような・・・・?
ただし - は常に同じであるのか? - や ― など一定ではないとかではなくて。
    • good
    • 0

郵便番号はありますか?


またデータは何件ほどですか?
    • good
    • 0

ごめんなさい、丁目待までは生成できないですよね。


件数によっては、丁目のみ手打ちの方が早いかもしれません。
    • good
    • 0

郵便番号はありますか?


あるなら、そこから生成した方が早いと思いますが。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!