CSVファイルをGoogleスプレッドシートにインポートすると、セル内に表示されない文字が混入してしまうことがあります。これらの印刷不可文字は、データの集計や検索で予期せぬエラーを引き起こす原因となります。この記事では、CLEAN関数を使って印刷不可文字を除去する方法を詳しく解説します。具体的な手順と応用例を通じて、スプレッドシート上のデータをすっきりと整形できるようになります。
【要点】CLEAN関数で印刷不可文字を削除する基本と注意点
- =CLEAN(セル): ASCII制御文字(0〜31)を除去します。データのクリーニングに最適です。
- TRIM関数との組み合わせ: CLEANで制御文字を除いた後、TRIMで余分なスペースも同時に削除します。
- SUBSTITUTE関数で特定文字を除去: 改行やタブなど特定の制御文字を別の文字に置き換えることができます。
ADVERTISEMENT
目次
CLEAN関数が印刷不可文字を除去する仕組み
スプレッドシートで扱うデータには、キーボードから直接入力できない制御文字が含まれることがあります。これらの文字は、CSVファイルのエクスポート時や外部システムからインポートした際に混入します。代表的なものに、改行(LF:10)、タブ(HT:9)、復帰(CR:13)などがあります。CLEAN関数は、Unicodeのカテゴリ「C」(制御文字)のうち、ASCIIコード0〜31の範囲を自動的に削除します。これにより、画面上で見えないノイズを除去し、データをきれいに整えられます。
CLEAN関数を使った印刷不可文字の除去手順
ここでは、実際にCLEAN関数を使ってセル内の制御文字を除去する方法を説明します。基本的な使い方から、他の関数との組み合わせまで、ステップごとに進めます。
基本的なCLEAN関数の使い方
- 対象セルを指定する
制御文字が含まれるセル(例: A2)をクリックします。データが複数ある場合は、最初のセルを選びます。 - CLEAN関数を入力する
数式バーに「=CLEAN(A2)」と入力します。これでA2の制御文字が除去された結果が表示されます。 - 数式をコピーする
セルの右下にあるフィルハンドルをドラッグして、他のセルにも適用します。範囲全体に数式をコピーできます。
この操作だけで、ほとんどの印刷不可文字が除去されます。ただし、CLEAN関数は文字コード0〜31のASCII制御文字のみを削除します。それ以外の特殊文字(例えば非改行スペース)は削除されません。
TRIM関数と組み合わせて余分なスペースも除去する
CLEAN関数は制御文字を除去しますが、余分なスペースや改行は残ることがあります。TRIM関数を併用すると、連続するスペースや先頭・末尾の空白を削除できます。
- TRIMとCLEANを組み合わせる
数式を「=TRIM(CLEAN(A2))」と入力します。CLEANで制御文字を除去した後、TRIMで余計な空白を削除します。 - 結果を確認する
表示が整然とし、セル内のデータが1行にまとまります。特にCSVインポート後のデータに有効です。
SUBSTITUTE関数で特定の制御文字を置き換える
改行文字だけを別の文字(スペースなど)に置き換えたい場合は、CLEANの代わりにSUBSTITUTE関数を使います。CLEANはすべての制御文字を削除しますが、SUBSTITUTEなら特定の文字だけを操作できます。
- 改行をスペースに置き換える
「=SUBSTITUTE(A2, CHAR(10), ” “)」と入力します。CHAR(10)が改行コードで、これを半角スペースに変更します。 - タブを削除する
「=SUBSTITUTE(A2, CHAR(9), “”)」と入力します。タブ文字(CHAR(9))を空文字に置き換えて削除します。 - CLEANと併用する
CLEANで残った文字をさらに整形する場合、例えば改行だけ残したいなら、先にCLEANを使い、その後SUBSTITUTEで改行を処理します。
CLEAN関数使用時の注意点と制限
CLEAN関数は便利ですが、いくつかの注意点があります。期待通りに動作しない場合の対処法も理解しておきましょう。
CLEAN関数では除去できない文字がある
CLEAN関数はUnicodeの制御文字の一部のみをカバーします。例えば、U+00A0(非改行スペース)やU+200B(ゼロ幅スペース)は除去できません。これらの文字は、データの見た目には影響しませんが、比較や検索で問題になることがあります。除去するにはSUBSTITUTE関数で個別に指定する必要があります。
改行やタブを意図的に残したい場合
CLEAN関数は改行やタブもすべて削除してしまいます。改行を残したい場合は、CLEANを使わずにSUBSTITUTEで不要な制御文字だけを置き換えてください。例えば、改行(CHAR(10))以外の制御文字を削除するには、CLEANではなくARRAYFORMULAとIFを組み合わせた複雑な式が必要ですが、実用的にはSUBSTITUTEを繰り返す方法が簡単です。
大量データでパフォーマンスが低下する場合
CLEAN関数は1セルごとに計算されるため、数千行を超えるデータでは再計算に時間がかかることがあります。その場合は、値として貼り付けて関数を削除するか、Google Apps Scriptを使った一括処理を検討してください。
ADVERTISEMENT
CLEAN関数と他の方法の比較
| 方法 | 除去対象 | 使用例 |
|---|---|---|
| CLEAN関数 | ASCII制御文字(0〜31) | =CLEAN(A2) |
| TRIM関数 | 余分なスペース | =TRIM(A2) |
| SUBSTITUTE関数 | 特定の文字列 | =SUBSTITUTE(A2, CHAR(10), ” “) |
| 正規表現(REGEXREPLACE) | パターンに一致する文字 | =REGEXREPLACE(A2, “[\p{C}]”, “”) |
正規表現を使うと、Unicodeのすべての制御文字を削除できます。ただし、高度な知識が必要なため、日常的な用途ではCLEANで十分です。
まとめ
この記事では、CLEAN関数を使ってCSVインポート後の印刷不可文字を除去する方法を解説しました。CLEAN関数は、ASCII制御文字を一括で削除できる便利な関数です。TRIMやSUBSTITUTEと組み合わせることで、より精密なデータ整形が可能になります。特定の制御文字だけを残したい場合はSUBSTITUTEを、すべての制御文字を除去したい場合はREGEXREPLACEを試してみてください。まずはCLEAN関数を基本として、用途に応じて適切な関数を選びましょう。
ADVERTISEMENT
超解決 第一編集部
疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。
Googleスプレッドシートの人気記事ランキング
- 【Googleスプレッドシート】GOOGLEFINANCE関数で株価・為替を取得!リアルタイムデータの呼び出し
- 【Googleスプレッドシート】印刷範囲を指定して印刷!特定範囲だけPDFや紙に出す手順
- 【Googleスプレッドシート】新しいスプレッドシートを作成する3つの方法!ドライブ・URL・テンプレート
- 【Googleスプレッドシート】数値の連続データを自動入力!オートフィルの活用
- 【Googleスプレッドシート】ダークモードを有効にする!目に優しい配色への切替
- 【Googleスプレッドシート】株価APIで株式データを自動取得!GOOGLEFINANCE超え活用
- 【Googleスプレッドシート】共有相手が編集できない時のチェック!権限と許可状態の確認
- 【Googleスプレッドシート】ページ設定で用紙サイズと向きを調整!印刷レイアウトの基本
- 【Googleスプレッドシート】Excelファイルxlsxをインポートする手順!ドラッグ&ドロップで取り込み
- 【Googleスプレッドシート】条件付き書式をコピーする!書式のみペーストの活用
