No.003
余分なスペースを削除してスペースを全角または半角に揃える 《SUBSTITUTE・TRIM》
2003/2007/2010/2013/2016/2019
Excelではさまざまな処理において全角/半角を区別する、つまり全角と半角とでは別データを見なすケースが多く、データ処理においては注意する点となっています。
例えばデータの担当者列などで、苗字と名前の間のスペースが全角で入力されている「森 花子」さんと半角スペースの「森 花子」さんとでは別人となってしまいます。
今回のお問い合わせは、苗字と名前の間のスペースが全角と半角が混じっている可能性があるということなので、苗字と名前の間のスペースを半角にし、その他の余分なスペースを削除して、テータをきれいに揃えたいというものです。
この場合、すべてのスペースを半角に揃えることと、余分なスペースを省くことが必要となります。
2つ必要となる関数を1つずつご案内します。
では、A列セルA2より氏名のデータが入力されているとします。
スペースを半角に揃えるのは、SUBSTITUTE 関数(分類: 文字列操作)を使用します。
SUBSTITUTE 関数 は、対象の文字列のある文字列を別の文字列に置換する関数です。
セルA2のデータ(引数1つ目)の全角スペース(引数2つ目)を半角スペース(引数3つ目)に置換する場合、式は次のようになります。
スペースも文字列ですので、前後にダブルクォーテーションを付けてあげます。
=SUBSTITUTE(A2," "," ")
これで、すべてのスペースが半角に揃いました。
全角文字列を半角文字列に変換するのは ASC 関数 がありますが、今回氏名のデータということで、「ハナコ」さんが「ハナコ」さんと半角になってしまうため、使用していません。
では次に、余分なスペースを省くのは TRIM 関数(分類: 文字列操作)を使用します。
引数は1つ、対象の文字列(のセル)を指定します。
=TRIM(A2)
TRIM 関数で取り除く余分なスペースというのは、データ前後のスペース、間に入っている複数のスペースの2番目以降のスペースです。
では、この2つの関数を合体してみましょう。
実はどちらから処理しても同じ結果となります。
全角スペースを半角スペースに置換したデータの余分なスペースを除く場合は
=TRIM(SUBSTITUTE(A2," "," "))
余分なスペースを除いたデータの全角スペースを半角スペースに置換する場合は
=SUBSTITUTE(TRIM(A2)," "," ")
どちらにしても、結果は次のようになります。
ヘルプmemo
<TRIM 関数>(分類: 文字列操作)
指定した文字列から不要なスペースを削除した結果を返します。
- 数式:
- =TRIM(文字列)
- 引数:
- ・[文字列] ...不要なスペースを削除したい文字列、またはセル参照で指定
<SUBSTITUTE 関数>(分類: 文字列操作)
文字列中の指定した文字列を新しい文字列に置換して返します。
- 数式:
- =SUBSTITUTE(文字列, 検索文字列, 置換文字列, 置換対象)
- 引数:
- ・[文字列] ...置換の対象である文字列、またはセル参照で指定
- ・[検索文字列] ...指定した文字列の中での、置換対象となる文字列を指定
- ・[置換文字列] ...置換する文字列を指定
- ・[置換対象] ...省略すると対象をすべて置換、数値nを指定するとn番目の対象を置換 (省略可)