文字列の中にある全角スペースを半角スペースに置換する(SUBSTITUTE,TRIM)
住所や氏名などの文字列がセルに入力されているときに、例えば姓と名の間にスペースを入れるなど文字列の中で区切り文字としてスペースが使用されることはよくあります。ただスペースには半角と全角があり、これが混在してしまっている場合があります。ここでは Excel の関数である SUBSTITUTE 関数と TRIM 関数を組み合わせて、文字列の中にある全角スペースを半角スペースに置換して統一する方法について解説します。
(Last modified: )
全角スペースを半角スペースに置換する
文字列の中にある全角スペースを半角スペースに置換する方法を確認します。次のシートを見て下さい。
入力されている住所の文字列には区切り文字として半角スペースと全角スペースが混在して含まれています。今回は全角スペースを半角スペースに変換します。変換後の値を表示する C3 セルに次のような数式を入力しました。
=SUBSTITUTE(B3," "," ")
SUBSTITUTE
関数を使って対象の文字列に含まれる全角スペースをすべて半角スペースに置換します。
Enter
キーを押すと、対象の文字列の中に全角スペースがあった場合は半角スペースに置換した文字列が C3 セルに表示されました。
C4 セルから C6 セルにも同じ数式を入力しました。
文字列の中にある全角スペースがすべて半角スペースに置換されました。
解説
SUBSTITUTE
関数は 1 番目の引数に指定した文字列の中にある 2 番目の引数で指定した文字列を 3 番目の引数で指定した文字列で置換します。今回は全角スペースを半角スペースに置換しましたが、半角スペースを全角スペースに置換する場合は次のような数式を使用してください。
=SUBSTITUTE(B3," "," ")
今回使用した関数の解説は下記を参照されてください。
連続しているスペースを一つにまとめる
文字列の中で半角スペースや全角スペースを区切り文字として使用している場合、スペースが一つではなく複数回連続して入力されている場合があります。このような連続しているスペースを一つにまとめる方法を確認します。次のシートを見て下さい。
分かりにくいですが B3 セルでは半角スペースが 3 つ連続して入力されており、 B4 セルでは全角スペースが 2 つ連続しています。また B5 セルでは全角スペースと半角スペースがひとつずつ入力されています。
今回は全角スペースを半角スペースに変換した上で、スペースが連続している場合は一つにまとめます。変換後の値を表示する C3 セルに次のような数式を入力しました。
=TRIM(SUBSTITUTE(B3," "," "))
SUBSTITUTE
関数を使って対象の文字列に含まれる全角スペースをすべて半角スペースに置換したあとで TRIM
関数を使って文字列の中で使用されている連続している複数のスペースを一つにまとめます。
Enter
キーを押すと、対象の文字列の中に全角スペースがあった場合は半角スペースに置換された上で、複数の半角スペースを一つにまとめた文字列が C3 セルに表示されました。
C4 セルから C6 セルにも同じ数式を入力しました。
解説
TRIM
関数は対象の文字列の先頭と末尾にある空白文字を取り除き、文字列の中にある複数の連続する空白文字を先頭の空白文字だけを残して取り除きます。今回はまず SUBSTITUTE
関数を使って全角スペースを半角スペースに変換したあとで、 TRIM
関数を使って文字列の中にある複数の連続するスペースを 1 つだけ残してあとは削除します。
TRIM
関数は文字列の中のスペースを 1 つだけにするだけでなく、文字列の先頭と末尾にスペースがあった場合はすべて削除する点に注意してください。
今回使用した関数の解説は下記を参照されてください。
-- --
Excel の関数である SUBSTITUTE 関数と TRIM 関数を組み合わせて、文字列の中にある全角スペースを半角スペースに置換して統一する方法について解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
プログラミングや開発環境構築の解説サイトを運営しています。