コピペしたデータの前後に余計なスペースが入っていて、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)*1やVALUE関数で変換してください |
TIP
TRIM関数でスペースが消えないときは、
=CODE(LEFT(A1,1))で先頭の文字コードを確認してみましょう。32(半角スペース)以外の値が返ってきたら、その文字コードに対応したSUBSTITUTE関数で処理できます。
まとめ
TRIM関数は「文字列の余分な半角スペースを削除する」ための関数です。
- 前後のスペースをすべて削除し、内部の連続スペースを1つに圧縮する
- 引数は「文字列」の1つだけでシンプル
- VLOOKUP前のデータ整形やCSVクレンジングに効果的
- 全角スペースにはSUBSTITUTE関数、制御文字にはCLEAN関数と組み合わせる
=TRIM(CLEAN(A1))で制御文字とスペースを同時に処理できる
データの整形はVLOOKUPや集計の精度に直結します。外部データを取り込んだらまずTRIM関数で整えるクセをつけておくと、トラブルを未然に防げます。ぜひ活用してみてください。
関連記事
関数一覧
Excel関数の一覧は下記の記事で確認できます。
エラー値が表示される場合は、下記の記事も参考にしてみてください。
