ExcelのTRIM関数の使い方|余分なスペースを一括削除する方法

スポンサーリンク

コピペしたデータの前後に余計なスペースが入っていて、VLOOKUPが一致しない。そんな経験はありませんか? 目に見えないスペースは手作業で探すと大変ですし、見落としも起こりがちです。TRIM関数を使えば、文字列の余分なスペースをまとめて削除できます。この記事では基本の書き方から実務の活用パターンまで紹介します。

この記事は次のような人におすすめ

  • セルの前後についた余計なスペースを一括で削除したい
  • コピペやCSVインポート後のデータを整形したい
  • TRIM関数とSUBSTITUTE関数・CLEAN関数の違いを知りたい

TRIM関数とは?

TRIM(トリム)関数は、文字列から余分な半角スペースを削除する関数です。英語の「trim」は「刈り込む・整える」という意味で、まさにデータを綺麗にするための関数です。

TRIM関数は次の2つの処理を同時に行います。

  • 文字列の先頭と末尾にあるスペースをすべて削除する
  • 文字列の内部にある連続した半角スペースを1つに圧縮する

たとえば「 田中 太郎 」という文字列にTRIM関数を使うと、「田中 太郎」になります。前後のスペースが消えて、名前の間の連続スペースも1つにまとまります。

NOTE

ワークシートのTRIM関数は半角スペース専用です。VBAにも同名のTrim関数がありますが、VBA版は前後のスペースだけを除去します。内部の連続スペースは圧縮しません。VBAの空白除去についてはVBA Trim関数の記事を参照してください。

TRIM関数の書き方(構文と引数)

基本構文

=TRIM(文字列)

引数の説明

引数必須/省略可説明
文字列必須余分なスペースを削除したいテキスト、またはセル参照

引数は「文字列」の1つだけなので、とてもシンプルです。セル参照のほか、ダブルクォーテーションで囲んだ文字列を直接指定することもできます。

TRIM関数の基本的な使い方

前後のスペースを削除する

セルA1に「 東京都新宿区 」と前後にスペースが入っている場合です。

=TRIM(A1)

結果は「東京都新宿区」になります。先頭と末尾のスペースがすべて消えます。

連続スペースを1つに圧縮する

セルA1に「田中 太郎」と名前の間にスペースが2つ入っている場合です。

=TRIM(A1)

結果は「田中 太郎」になります。内部の連続スペースが1つに圧縮されます。もちろん前後にもスペースがあれば同時に削除されます。

文字列を直接指定する

セル参照ではなく、数式の中に文字列を直接書くこともできます。

=TRIM("  Excel 関数   ")

結果は「Excel 関数」です。前後のスペースが消え、内部の連続スペースが1つに圧縮されます。

TRIM関数の実務活用パターン

VLOOKUP前のデータ整形

外部システムから取り込んだデータには、見えないスペースが紛れ込んでいることがあります。このスペースが原因でVLOOKUP関数が「一致なし」になるケースは非常に多いです。

検索値と検索範囲の両方にTRIM関数を適用して、スペースの影響を排除しましょう。

=VLOOKUP(TRIM(A2),B:C,2,FALSE)

VLOOKUP・INDEX/MATCHで結果がおかしいときは、まずTRIM関数を試してみてください。LEN関数で「見た目は同じなのに文字数が違う」かどうかを確認するのも有効です。

=LEN(A2)=LEN(TRIM(A2))

この数式がFALSEなら、セルに余分なスペースが含まれている証拠です。

CSVインポート後のクレンジング

CSVファイルをExcelに取り込むと、フィールドの前後にスペースが入ることがあります。データが大量にある場合は、作業列を使ってTRIM関数で一括整形するのが効率的です。

=TRIM(A2)

この数式を下方向にコピーして、整形後のデータを「値として貼り付け」で元の列に上書きすれば完了です。

TIP

CSVデータにはスペース以外にも改行コードなどの制御文字が混ざることがあります。その場合はCLEAN関数と組み合わせると確実です。=TRIM(CLEAN(A2)) で制御文字の除去とスペース整形を同時に行えます。

TRIM関数とSUBSTITUTE関数の合わせ技

TRIM関数は半角スペースだけを処理します。全角スペースも含めて除去したい場合は、SUBSTITUTE関数との合わせ技が便利です。

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

この数式はまずSUBSTITUTE関数で全角スペースを半角スペースに変換し、その後TRIM関数で余分な半角スペースを整理します。全角・半角が混在したデータを一発で綺麗にできるので、覚えておくと重宝します。

すべてのスペースを完全に消したい場合はSUBSTITUTE関数だけで対応できます。

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

「単語間のスペースは1つ残したい」ならTRIM関数、「スペースを全部消したい」ならSUBSTITUTE関数と使い分けてください。

名前リストの姓名間スペース統一

社員名簿や顧客リストで「田中 太郎」「佐藤 花子」のように姓名間のスペースがバラバラなことがあります。TRIM関数を使えば、連続スペースが1つに統一されます。

=TRIM(A2)

結果はすべて「姓(スペース1つ)名」の形に揃います。データの見た目が統一されるだけでなく、検索や集計の精度も上がります。

TRIM関数で削除できないスペース・文字

TRIM関数は万能ではありません。処理できるのは半角スペース(文字コード32)だけです。

文字の種類文字コードTRIM関数で削除対処法
半角スペース32できるTRIM関数でOK
全角スペース12288できないSUBSTITUTE関数で半角に変換してからTRIM
改行(LF)10できないCLEAN関数、またはSUBSTITUTE(A1,CHAR(10),””)
タブ9できないCLEAN関数、またはSUBSTITUTE(A1,CHAR(9),””)
ノーブレークスペース(NBSP)160できないSUBSTITUTE(A1,CHAR(160),””)

Webページからコピーしたデータには、ノーブレークスペース(CHAR(160))が含まれていることがあります。見た目は通常のスペースと同じなのにTRIM関数で消えない場合は、この文字を疑ってみてください。

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

CHAR(160)を半角スペースに変換してからTRIM関数に渡すことで、ノーブレークスペースも除去できます。

TRIM関数とCLEAN関数の違い

TRIM関数とCLEAN関数は、どちらも「不要な文字を消す」関数ですが、削除対象が異なります。

項目TRIM関数CLEAN関数
削除対象余分な半角スペース印刷できない制御文字(文字コード0〜31)
スペースの処理前後削除 + 内部を1つに圧縮スペースは削除しない
改行の削除できないできる(改行は文字コード10)
タブの削除できないできる(タブは文字コード9)
使う場面スペースの整理制御文字の除去

両方を同時に行いたい場合は、組み合わせて使うのがベストです。

=TRIM(CLEAN(A1))

CLEAN関数で制御文字を除去し、TRIM関数でスペースを整理する順番で使います。CSVや外部データの取り込み後には、このセットで処理しておくと安心です。

よくあるエラーと対処法

TRIM関数自体はエラーが出にくい関数ですが、意図した結果にならないケースがあります。

症状原因対処法
スペースが消えない全角スペースが含まれているSUBSTITUTE関数で半角に変換してからTRIMを適用(上述の合わせ技を参照)
スペースが消えないノーブレークスペース(CHAR(160))が含まれている=TRIM(SUBSTITUTE(A1,CHAR(160)," ")) で対応
#VALUE!エラー引数が指定されていない文字列の引数は必須です。空にせずセル参照または文字列を指定してください
VLOOKUPが一致しないTRIM後もまだ不一致ASC関数で全角英数字を半角に統一してみてください
数値として認識されないTRIM後の値が文字列のままTRIM関数の結果は文字列です。数値として使いたい場合は=TRIM(A1)*1VALUE関数で変換してください

TIP

TRIM関数でスペースが消えないときは、=CODE(LEFT(A1,1)) で先頭の文字コードを確認してみましょう。32(半角スペース)以外の値が返ってきたら、その文字コードに対応したSUBSTITUTE関数で処理できます。

まとめ

TRIM関数は「文字列の余分な半角スペースを削除する」ための関数です。

  • 前後のスペースをすべて削除し、内部の連続スペースを1つに圧縮する
  • 引数は「文字列」の1つだけでシンプル
  • VLOOKUP前のデータ整形やCSVクレンジングに効果的
  • 全角スペースにはSUBSTITUTE関数、制御文字にはCLEAN関数と組み合わせる
  • =TRIM(CLEAN(A1)) で制御文字とスペースを同時に処理できる

データの整形はVLOOKUPや集計の精度に直結します。外部データを取り込んだらまずTRIM関数で整えるクセをつけておくと、トラブルを未然に防げます。ぜひ活用してみてください。

関連記事

関数一覧

Excel関数の一覧は下記の記事で確認できます。

エラー値が表示される場合は、下記の記事も参考にしてみてください。

タイトルとURLをコピーしました