Excel で文字列に含まれる不要なスペースを削除する方法

技あり!PC活用術

あちこちで集めてきたデータを Excel で表にしようとしたら、前後にスペースが入っているデータもあって扱いづらいです。不要なスペースを一括で削除できませんか?

以前「検索と置換」機能ですべてのスペースを削除する方法は教えたわよね?

はい。でも、今回は単語間にあるスペースだけ残したい、例えば「名前」のデータで「姓」と「名」との間にあるスペースは削除したくないのです。

そうなのね。だったら「TRIM関数」を使うといいわ。

「TRIM関数」で残すスペースを半角か全角かでそろえることはできますか?

「TRIM関数」だけではできないから「検索と置換」機能も使うか「SUBSTITUTE関数」と組み合わせれば可能よ。

説明

Excel で文字列に含まれるスペースを「すべて削除」する方法は以前、紹介しました。

おさらいすると「検索と置換」機能を使って「検索する文字列」を「スペース」として、「置換後の文字列」には何も入力しないで「すべて置換」する方法でした。

特に「検索と置換」機能の「オプション」設定で「半角と全角を区別する」にチェックがなければ「全角スペース」も「半角スペース」も一緒に「入力なし」に置換されるので、文字列に含まれるスペースは「すべて削除」できるわけです。

ただし「すべて削除」ではなく、文字列に含まれる単語間の「スペース」は残したい、例えば「名前」のデータで「姓」と「名」の間に「スペース」があるなら、その「スペース」は削除せずに残したい、といったケースが考えられます。

そんなときに使えるのが「TRIM関数」で書式はシンプルです。

TRIM(文字列)

これで「文字列」に含まれる単語間のスペースは1つずつだけ残し、「文字列」の前後や重複する不要なスペースはすべて削除することができます。

例えば次のように前後に不要な「全角スペース」や「半角スペース」を含む「名前」のデータがあるとしましょう。

「A1」に「 あおい たろう」
「A2」に「いけだ じろう 」
「A3」に「 さかい さぶろう 」

不要なスペースを削除して表示するセルに「TRIM関数」を使って

「B1」に「=TRIM(A1)」
「B2」に「=TRIM(A2)」
「B3」に「=TRIM(A3)」

と入力して実行すれば

「B1」は「あおい たろう」
「B2」は「いけだ じろう」
「B3」は「さかい さぶろう」

となり、前後の不要なスペースはすべて削除されます。

ただし「TRIM関数」では1つだけ残った「単語間のスペース」を「全角」か「半角」かを判別したり、どちらかにそろえたりすることはできません。

そこで、例えばすべて「全角スペース」にそろえるなら「TRIM関数」で出力された文字列に含まれるスペースを整えます。

出力した文字列を「検索と変換」するには関数を含まない「値だけ」にする必要があります。
具体的には先ほどの「TRIM関数」による文字列なら「B1」から「B3」までコピーして、「C1」から「C3」に「値だけ貼り付け」します。

この「値だけ」の「C1」から「C3」までを選択して、「検索と置換」で「半角スペース」を検索して「全角スペース」に置換すればいいわけです。

あるいは検索文字列を置換する「SUBSTITUTE」関数を使っても可能です。

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

つまり、先ほど「B1」は「=TRIM(A1)」にしましたが、それを

=SUBSTITUTE(TRIM(A1)," "," ")

とするのです。

これで「文字列」から余分なスペースを削除し、さらに単語間に1つだけ残ったスペースを「全角スペース」にそろえることができました。

執筆者: 林 俊二

お気軽にお問い合わせください

ページの先頭に戻る