データクリーニングの必須技!TRIM関数・CLEAN関数で余分な空白・文字を一括削除

データクリーニングの必須技!TRIM関数・CLEAN関数で余分な空白・文字を一括削除

外部システムからダウンロードしたデータや、手入力されたデータに余分な空白や改行文字が混入していて困った経験はありませんか?これらの「見えない文字」は、データ分析や関数の計算結果に大きな影響を与えます。

今回は、ExcelやGoogleスプレッドシートでTRIM関数・CLEAN関数を使って、効率的にデータクリーニングを行う方法を実例とともに詳しく解説します。

TRIM関数・CLEAN関数とは?データクリーニングの基本

TRIM関数は文字列の前後の空白を削除し、文字間の連続する空白を1つにまとめます。CLEAN関数は印刷できない制御文字(改行、タブなど)を削除します。

こんな場面で活用できます:

  • CSVファイルのインポート時の余分な空白削除
  • 氏名データの前後空白の統一
  • Webからコピーしたデータの改行文字削除
  • データベース登録前のデータクリーニング
  • VLOOKUP関数が正常に動作しない原因の解決
元データ(問題あり) 問題点 使用関数
" 田中 太郎 " 前後に全角・半角空白 TRIM関数
"佐藤
花子"
改行文字が含まれる CLEAN関数
" 鈴木  一郎 " 前後空白+文字間の連続空白 TRIM関数
"山田[TAB]次郎" タブ文字が含まれる CLEAN関数

基本構文の理解

TRIM関数・CLEAN関数の基本的な書き方をマスターしましょう。

=TRIM(文字列) =CLEAN(文字列)

具体例:

  • =TRIM(A1) ➜ A1セルの前後空白を削除し、連続空白を1つにまとめる
  • =CLEAN(A1) ➜ A1セルの印刷できない制御文字を削除
  • =CLEAN(TRIM(A1)) ➜ 空白削除+制御文字削除を同時実行

処理前:

" 田中太郎 "

TRIM処理後:

"田中太郎"

実践例:顧客データのクリーニング作業

実際の顧客データを例に、TRIM関数・CLEAN関数を使ったデータクリーニングの手順を見てみましょう。

A列(元データ) B列(TRIM処理) C列(CLEAN処理) D列(完全クリーニング)
" 田中太郎 " =TRIM(A2) =CLEAN(A2) =CLEAN(TRIM(A2))
"佐藤
花子"
=TRIM(A3) =CLEAN(A3) =CLEAN(TRIM(A3))
" 鈴木 一郎 " =TRIM(A4) =CLEAN(A4) =CLEAN(TRIM(A4))

手順1:TRIM関数で空白を整理

=TRIM(A2)

結果:前後の空白が削除され、文字間の連続空白が1つにまとめられます。

手順2:CLEAN関数で制御文字を削除

=CLEAN(A2)

結果:改行文字やタブ文字などの印刷できない文字が削除されます。

手順3:両方を組み合わせて完全クリーニング

=CLEAN(TRIM(A2))

結果:空白整理と制御文字削除が同時に実行され、きれいなデータが得られます。

💡 実用的なポイント:

関数を組み合わせる際は、内側から外側へ処理が実行されます。TRIM(A2)の結果に対してCLEAN関数が適用されるため、=CLEAN(TRIM(A2))の順序が効果的です。

絶対参照を活用した一括クリーニング

大量のデータを効率的にクリーニングするため、絶対参照を使った方法を解説します。

元データ範囲 クリーニング用数式 コピー範囲
A2:A100 =CLEAN(TRIM(A2)) B2:B100

一括処理の手順:

  1. B2セルに =CLEAN(TRIM(A2)) を入力
  2. B2セルを選択し、Ctrl+C でコピー
  3. B3:B100 の範囲を選択
  4. Ctrl+V でペースト

この方法により、数百・数千行のデータでも一瞬でクリーニングが完了します。

さらに効率的な方法(配列数式):

Excelの新しいバージョンやGoogleスプレッドシートでは、以下のような配列数式も使用できます:

=ARRAYFORMULA(CLEAN(TRIM(A2:A100)))

応用例:特定の文字削除との組み合わせ

TRIM・CLEAN関数は、SUBSTITUTE関数と組み合わせることで、より高度なデータクリーニングが可能です。

例:電話番号のハイフンと空白を統一

=CLEAN(TRIM(SUBSTITUTE(SUBSTITUTE(A2,"-","")," ","")))

処理前:

" 090-1234-5678 " "090 1234 5678" "090-1234 5678 "

処理後:

"09012345678" "09012345678" "09012345678"

処理の流れ:

  1. SUBSTITUTE(A2,"-","") ➜ ハイフンを削除
  2. SUBSTITUTE(結果," ","") ➜ 全角空白を削除
  3. TRIM(結果) ➜ 半角空白を整理
  4. CLEAN(結果) ➜ 制御文字を削除

⚠️ 注意点:

複数の関数を組み合わせる場合、処理順序が重要です。また、処理が複雑になると計算負荷が高くなるため、大量データでは段階的に処理することも検討してください。

よくある問題とトラブルシューティング

1. VLOOKUP関数が正常に動作しない

原因:検索値や検索範囲に見えない空白や制御文字が含まれている

対処法:事前にTRIM・CLEAN関数でデータクリーニングを実施

解決例:

=VLOOKUP(CLEAN(TRIM(A2)),CLEAN(TRIM(検索範囲)),2,FALSE)

2. データの重複チェックで漏れが発生

原因:見た目は同じでも、空白の数や位置が異なるため別データとして認識

対処法:重複チェック前にデータを統一

3. 文字数カウントが合わない

原因:見えない制御文字もカウントされている

対処法:LEN関数とCLEAN関数を組み合わせて比較

=LEN(A1) & " → " & LEN(CLEAN(A1))

💡 予防策:

外部データを取り込む際は、最初にTRIM・CLEAN関数を適用する習慣をつけましょう。これにより、後の処理でのトラブルを大幅に減らせます。

まとめ

TRIM関数・CLEAN関数のマスターポイント

  • 使用場面:データの前後空白削除、制御文字削除によるクリーニング
  • 基本構文:
    • =TRIM(文字列) ➜ 前後空白削除・連続空白の統一
    • =CLEAN(文字列) ➜ 印刷できない制御文字削除
  • 推奨組み合わせ:
    • =CLEAN(TRIM(A1)) ➜ 完全なデータクリーニング
    • SUBSTITUTE関数との組み合わせで特定文字も削除
  • 効率化のコツ:配列数式や一括コピーで大量データを一度に処理
  • 応用技:VLOOKUP関数の精度向上、重複データの正確な検出

データクリーニングは地味な作業ですが、後の分析精度に大きく影響します。TRIM・CLEAN関数を使いこなして、信頼性の高いデータ分析を行いましょう!

コメントを残す