• 締切済み

Accessでの住所変換について

やりたいことは、住所を「●丁目」までにして、それ以降の詳細はカットしたい。 問題として、下記の変換方法だと、「丁」や「-」がないものは空白で返してしまう。 何か良い方法はありませんでしょうか。 よろしくお願いいたします。 Left([番地],InStr(Replace([番地],"丁","-"),"-")-1) 丁を「-」に変換し、「-」より左を抽出 例 浅草1丁目2-3-4 → 浅草1 浅草1-2-3-4 → 浅草1 浅草1 → 空白 浅草 → 空白

みんなの回答

  • 30246kiku
  • ベストアンサー率73% (370/504)
回答No.3

> 下記の変換方法だと、「丁」や「-」がないものは空白で返してしまう。 > Left([番地],InStr(Replace([番地],"丁","-"),"-")-1) この部分だけが解決すればよいですか。 解決方法)InStr に与える文字列に必ず "-" が存在する様に加工する。 例えば、Left([番地],InStr(Replace([番地] & "-","丁","-"),"-")-1) とか、Left([番地],InStr(Replace([番地],"丁","-") & "-","-")-1) で、どうでしょうか

  • o_chi_chi
  • ベストアンサー率45% (131/287)
回答No.2

無条件でLeft関数でとろうとしているから。 Instrは対象がない場合0をかえすのでIIFで判定すればよいかと。 (ただ"丁"が途中にある地名の場合おかしくなると思いますが。) --- IIF(InStr(Replace([番地],"丁","-"),"-")>0, Left([番地],InStr(Replace([番地],"丁","-"),"-")-1), [番地])

回答No.1

有りません。 やるとすれば全国の町名、字名の構成(地番、丁目が有るか?など)のデーターベースを作って変換するより無いでしょう。 浅草1の様な場合浅草一丁目なのか浅草1番(地)なのか解りません。 また地番がない場合やかなが入る所もあります。 無番地、や イ1 など。

関連するQ&A