らくらくIT活用術

PC活用講座 - Excel

「Excelの便利機能活用術」
名簿管理に便利! セルの不要なスペースを削除する方法

ITライター 立山秀利

セルに入力されている文字列に、スペースが挿入されていることはよくある。例えば名前のデータなら、苗字と名前の間にスペースが挿入されているケースは多い。加えて、苗字の前や名前の後ろにもスペースがある場合もある。そういった不要なスペースを一つずつ全て削除するには、手間も時間もかかりすぎてしまう。今回は、そういう文字列内の不要なスペースを効率よく削除する方法を紹介する。

前後のスペースを削除

不要なスペースの削除は関数を利用するとよい。文字列の前と後のスペースを削除するなら、TRIM関数を利用するのが手軽だ。
-------------------------------------------------
=TRIM(文字列)

文字列:スペースを削除したい文字列
-------------------------------------------------

引数に文字列を指定すると、前後のスペースを削除して返す。スペースは全角でも半角でも削除できる。

例えば、A1セルに「 山田 太郎 」という名前が入力されているとする。前後に半角スペースがあり、かつ、姓と名の間にも半角スペースがあるとする。

そして、次のTRIM関数の数式をB1セルに入力したとする。引数「文字列」には、A1セルを指定している。
-------------------------------------------------
=TRIM(A1)
-------------------------------------------------

すると、TRIM関数によって、A1セルの文字列「 山田 太郎 」の前後の半角スペースが削除された「山田 太郎」がB1セルに表示される。

図

TRIM関数は文字列の前後のスペースは削除するが、文字列の中のスペースが2つ以上ある場合は、先頭の1つだけを残して削除される。そのため、姓と名の間のスペースは残したまま、前後のスペースを削除したい場合に適している。

文字列の中のスペースも削除

文字列の前と後ろに加え、中のスペースも削除したければ、SUBSTITUTE関数を利用すればよい。SUBSTITUTE関数は文字列中の指定した文字を新しい文字列に置き換える関数である。
-------------------------------------------------
=SUBSTITUTE(文字列,検索文字列,置換文字列,置換対象)

文字列   目的の文字列
検索文字列 置き換える前の文字列
置換文字列 置き換えた後の文字列
置換対象  置き換える検索文字列の番号
-------------------------------------------------

引数「置換対象」には、見つかった検索文字列の中で何番目のものだけを置き換えるのかを数値で指定する。省略可能なので、省略するとすべての検索文字列の置換も可能だ。

例えば、TRIM関数の例と同じく、A1セルに「 山田 太郎 」という名前が入力されているとする。前後に加え、姓と名の間のスペースも削除してB1セルに表示するには、B1セルに次のようなSUBSTITUTE関数を記述すればよい。
-------------------------------------------------
=SUBSTITUTE(A1," ","")
-------------------------------------------------

引数「文字列」には、目的の名前が入ったA1セルを指定。引数「検索文字列」には、半角スペースとして「" "」(半角スペースをダブルコーテーションで囲う)を指定する。引数「置換文字列」には、空の文字列として「""」(ダブルコーテーション2つのみ)を指定する。引数「置換対象」は省略する。

すると、A1セルの文字列で、半角スペースが空の文字列に置き換えられる。引数「置換対象」を省略しているため、すべての半角スペースが空の文字列に置き換えられる。その結果、前後および姓と名の間の半角スペースが削除される。

図

だが、この方法だと全角スペースがある場合は削除されない。もし同様に削除したい場合は、再度全角スペースを指定する必要があり、関数的には以下のような記述となる。
-------------------------------------------------
=SUBSTITUTE(SUBSTITUTE(A1," ","")," ","")
-------------------------------------------------

また、引数「置換対象」を省略しなければ、位置を指定してスペースを削除することも可能だ。例えば、前の半角スペースのみ削除するには、引数「置換対象」に1を指定すればよい。
-------------------------------------------------
=SUBSTITUTE(A1," ","",1)
-------------------------------------------------

図

もし姓と名の間の半角スペースのみ削除したければ、引数「置換対象」に2を指定すればよい。

これらTRIM関数とSUBSTITUTE関数を使えば、不要なスペースを様々なパターンで容易に削除できる。名前データの体裁を統一したい場合などに便利な方法だ。

その他の【Excel】を見る

PC活用講座 一覧へ

立山秀利(たてやま・ひでとし)

カーナビのソフトウェア開発、Webプロデュース業務を経て、現在は、システムやネットワーク、Microsoft Officeを中心に執筆中。 主な著書に『Excel VBAのプログラミングのツボとコツがゼッタイにわかる本』などがある。

(監修:日経BPコンサルティング)