住所データを半角に置換すると日付に変わる!?
住所データを
「1-3-5」→「1-3-5」
「1丁目3番5号」→「1-3-5」
というように置換を使って修正しようとすると、
「2001/3/5」
というように、
勝手に日付データに修正されてしまいます。
住所からの置換で不具合がおきる例
- 例1
-
- A1セルを文字列型にしておきます
- A1セルに「1-3-5」と入れます。
- 置換で、全角ハイフンを半角ハイフンに変換すると、
「2001/3/5」と表示されてしまいます。
※A1セルに入れる数字は、全角・半角どちらでも同じ症状が出ます
- 例2:
-
- A2セルを文字列型にしておきます
- A2セルに「1丁目3番5号」と入れます。
- 置換で、「丁目」→「-」、「番」→「-」、「号」→「」と変換すると、
「2001/3/5」と表示されてしまいます。
どちらも、
元々を文字列設定にしているにもかかわらず、
勝手に日付変換されてしまうので、
非常に「たちが悪い」です。
下記動画で再現していますので、
何が起きるか、ご確認ください。
住所データを日付に変換されないようにする方法
残念ながら、
エクセルの置換の機能を使っている限りは、
勝手に日付に変換されないようにするのは無理です。
microsoftも仕様だから諦めろ、といっています(汗)。
ですので、別の手段を考えないといけません。
一番素直なのは、
関数を使う方法です。
関数を使って、文字の置換えをすると、
日付に勝手に変換されません。
例えば、
次の図のように、
=substitute(A1,"-","-")
=substitute(substitute(substitute(A2,"丁目","-"),"番","-"),"号","")
=substitute(substitute(substitute(A2,"丁目","-"),"番","-"),"号","")
というような感じで文字の置換えをすれば、
望ましい結果が得られます。