[Excel] 半角全角文字が混在した文字列を全角文字に統一する方法 (SUBSTITUTE関数・JIS関数)

例えば緊急連絡先住所などを社員から収集した場合、整理がし易いように「すべて全角で」などと指示をする場合がありますが、入力制限をしない限りミスは必ずあります。

そこで回収した住所を全角に変換する方法を考えてみます。

Excel20160511_01

上図の例でA列に住所が入力されており、全角変換してC列にセットしています。備考欄に不備の内容を記載しました。

文字列の置き換えにはSUBSTITUTE関数を使用する事にしました。

SUBSTITUTE(文字列, 検索文字列, 置換文字列, [置換対象])

文字列の中から[検索文字列]を探してすべて[置換文字列]に置き換えます。[置換対象]は通常は指定する必要はありません。数字を指定すると置き換え対象のうち先頭から何個目の文字列を置き換えるか指定できます。(※ページの最後に例を記載します。)

まず、以下のように書くとA2セルの内容を全角スペースをスペース無しに置換するとなります。
=SUBSTITUTE(A2,” ”,””)

そして、関数を重ねて、その結果の文字列の半角スペースをスペース無しに置換します。
=SUBSTITUTE(SUBSTITUTE(A2,” ”,””),” “,””)

さらに、その結果の文字列の半角長音(ボールなどの伸ばす記号)を半角ハイフンに置換します。
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2,” ”,””),” “,””),”ー”,”-“)

最後にJIS関数で半角英数字を全角英数字に変換します。
=JIS(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2,” ”,””),” “,””),”ー”,”-“))

上図の住所(変換後)には最後の関数が入力されています。

JIS関数は引数の文字列の半角の英数カナ文字(1バイト)を全角の英数カナ文字(2バイト)に変換するのですが、ヘルプを見るとDBCS関数というのもあるのですが何故か使用できません。恐らく日本語版ExcelではJIS関数、英語版ExcelではDBCS関数なのではと思います。

さて、住所を例にした文字列置換を説明しましたが、マンション名など本当に間違いではなく長音が必要なデータもあります。その場合は住所1、住所2などマンション名などは分けて収集する方がいいかもしれません。

 

※補足

SUBSTITUTE関数の第4引数の置換対象を指定した場合は以下のような動作になります。

SUBSTITUTE(”新 宿 区 歌 舞 伎 町”,” “,””, 2)
→ 新 宿区 歌 舞 伎 町

“新 宿 区 歌 舞 伎 町”という半角スペースが入った文字列の半角を取る様に指定していますが、引数で2と与えることで、2番目の半角スペースである宿と区の間の半角スペースのみが置換されています。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です