概要
「外部システムから取り込んだデータに“見えない文字”が混ざっている」
「改行コードや制御文字が原因で、検索・置換・一致判定がうまくいかない」
「コピーしたテキストに謎の空白や改行が入ってしまう」
こういう “不可視文字(制御文字)”を取り除きたい ときに使うのが CLEAN 関数です。
CLEAN は、
文字コード 0〜31 の制御文字を削除する関数
で、特に外部データのクレンジング(清掃)に大活躍します。
ここでは、初心者向けに CLEAN の仕組みと実務で使えるテンプレートを、例題つきで丁寧に解説します。
CLEAN 関数の基本
書式
=CLEAN(文字列)
CLEAN が削除するのは、主に次のような 制御文字(不可視文字) です。
- 改行コード(CHAR(10))
- タブ(CHAR(9))
- ベル(CHAR(7))
- その他の制御コード(0〜31)
つまり、
「見えないけど邪魔をする文字」 を一掃してくれます。
基本パターン:不可視文字を削除する
例:セル A2 に不可視文字が混ざっている場合
=CLEAN(A2)
これだけで、A2 の中にある制御文字がすべて取り除かれます。
応用1:改行やタブを含むテキストを“1行に整形”
外部システムから取り込んだデータに、
改行(CHAR(10))やタブ(CHAR(9))が混ざっていることがあります。
例:A2 のテキストから改行・タブを除去
=CLEAN(A2)
CLEAN は改行やタブも削除するため、
「1行のきれいなテキスト」 に整形できます。
応用2:TRIM と組み合わせて“余計な空白も除去”
CLEAN は制御文字を削除しますが、
空白(スペース)は削除しません。
そこで、空白も整えたいときは TRIM と組み合わせます。
例:不可視文字+余計な空白をまとめて除去
=TRIM(CLEAN(A2))
これで、
- 改行・タブなどの制御文字 → CLEAN が削除
- 連続スペース → TRIM が 1 個に整形
- 先頭・末尾のスペース → TRIM が削除
という“完全クレンジング”ができます。
応用3:SUBSTITUTE と組み合わせて「特定の不可視文字だけ除去」
CLEAN は便利ですが、
削除対象は 0〜31 の制御文字のみ です。
もし「特定の文字だけ除去したい」場合は、
CLEAN と SUBSTITUTE を組み合わせます。
例:A2 のテキストからタブ(CHAR(9))だけ除去
=SUBSTITUTE(A2, CHAR(9), "")
改行だけ除去したい場合:
=SUBSTITUTE(A2, CHAR(10), "")
CLEAN は“全部まとめて削除”、
SUBSTITUTE は“狙った文字だけ削除”という使い分けです。
応用4:外部データのクレンジング(CSV・TSV・Webコピー)
Web やシステムからコピーしたテキストには、
不可視文字が混ざっていることが多く、
検索・一致判定・VLOOKUP が失敗する原因になります。
例:外部データを CLEAN で整形してから処理
=VLOOKUP(CLEAN(A2), 範囲, 2, FALSE)
CLEAN をかませることで、
“見えない差異”による検索ミスを防止できます。
応用5:TEXTJOIN と組み合わせて“きれいな結合”
複数セルを TEXTJOIN で結合するとき、
元データに不可視文字があると、
結合結果が乱れることがあります。
例:A2:A5 を CLEAN してから結合
=TEXTJOIN("、", TRUE, CLEAN(A2:A5))
※動的配列対応版(Excel 365)
これで、
不可視文字を除去したクリーンな文字列だけを結合できます。
不可視文字除去の“型”まとめ
不可視文字を削除
=CLEAN(A2)
不可視文字+余計な空白を削除
=TRIM(CLEAN(A2))
特定の不可視文字だけ削除
=SUBSTITUTE(A2, CHAR(コード), "")
検索・一致判定の前にクレンジング
=VLOOKUP(CLEAN(A2), 範囲, 2, FALSE)
結合前にクレンジング
=TEXTJOIN("、", TRUE, CLEAN(A2:A5))
例題
問題1
A2 に不可視文字(改行やタブ)が混ざっています。
これらを削除してきれいな文字列にしたいです。
CLEAN を使った式を書いてください。
=CLEAN(A2)
問題2
A2 のテキストから不可視文字を削除し、
さらに余計な空白も整えたいです。
TRIM と CLEAN を組み合わせた式を書いてください。
=TRIM(CLEAN(A2))
問題3
A2 のテキストからタブ(CHAR(9))だけを削除したいです。
SUBSTITUTE を使った式を書いてください。
=SUBSTITUTE(A2, CHAR(9), "")
問題4
VLOOKUP の検索値 A2 に不可視文字が混ざっており、
検索がうまくいきません。
検索前に不可視文字を除去する式を書いてください。
=VLOOKUP(CLEAN(A2), 範囲, 2, FALSE)
問題5
A2:A5 の文字列を結合したいが、
各セルに不可視文字が混ざっています。
CLEAN と TEXTJOIN を組み合わせた式を書いてください。
=TEXTJOIN("、", TRUE, CLEAN(A2:A5))
CLEAN は「見えないゴミを一掃する」ための強力な関数です。
外部データの取り込み・検索精度の向上・結合の安定化など、
実務での効果が非常に大きいので、ぜひ“データクレンジングの基本”として使いこなしてください。
