- 締切済み
Accessでの住所変換について
やりたいことは、住所を「●丁目」までにして、それ以降の詳細はカットしたい。 問題として、下記の変換方法だと、「丁」や「-」がないものは空白で返してしまう。 何か良い方法はありませんでしょうか。 よろしくお願いいたします。 Left([番地],InStr(Replace([番地],"丁","-"),"-")-1) 丁を「-」に変換し、「-」より左を抽出 例 浅草1丁目2-3-4 → 浅草1 浅草1-2-3-4 → 浅草1 浅草1 → 空白 浅草 → 空白
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- 30246kiku
- ベストアンサー率73% (370/504)
> 下記の変換方法だと、「丁」や「-」がないものは空白で返してしまう。 > Left([番地],InStr(Replace([番地],"丁","-"),"-")-1) この部分だけが解決すればよいですか。 解決方法)InStr に与える文字列に必ず "-" が存在する様に加工する。 例えば、Left([番地],InStr(Replace([番地] & "-","丁","-"),"-")-1) とか、Left([番地],InStr(Replace([番地],"丁","-") & "-","-")-1) で、どうでしょうか
- o_chi_chi
- ベストアンサー率45% (131/287)
無条件でLeft関数でとろうとしているから。 Instrは対象がない場合0をかえすのでIIFで判定すればよいかと。 (ただ"丁"が途中にある地名の場合おかしくなると思いますが。) --- IIF(InStr(Replace([番地],"丁","-"),"-")>0, Left([番地],InStr(Replace([番地],"丁","-"),"-")-1), [番地])
- TooManyBugs
- ベストアンサー率27% (1472/5321)
有りません。 やるとすれば全国の町名、字名の構成(地番、丁目が有るか?など)のデーターベースを作って変換するより無いでしょう。 浅草1の様な場合浅草一丁目なのか浅草1番(地)なのか解りません。 また地番がない場合やかなが入る所もあります。 無番地、や イ1 など。