Woman typing on a laptop
Excelで作業をしていると、コピー&ペーストしたデータやインポートしたCSVファイルなどに、意図せず「改行」や「不可視の文字」が含まれてしまうことがあります。見た目にはわかりづらいものの、関数の結果がうまく表示されない、検索やフィルターが正しく動作しないといったトラブルの原因にもなります。
そんなときに便利なのが、ExcelのCLEAN関数
です。この関数を使えば、セル内の改行や制御文字を一発で取り除き、データを1行にまとめることができます。本記事では、CLEAN関数の基本的な使い方から、他の関数との組み合わせによる実用的な活用例まで、図解付きでわかりやすく解説します。
CLEAN関数は、文字列から印刷できない制御文字を削除するための関数です。特に、セル内に含まれている改行コード(CHAR(10))を削除するためによく使われます。
=CLEAN(文字列)
この関数を使用することで、セル内のデータが1行にまとまり、扱いやすくなります。
例えば、以下のようなセル内容があるとします。
山田 太郎
東京都港区
info@example.com
このデータは一見便利なように見えますが、データベースに格納する、CSVとして出力する、検索・ソートをかけるといった処理において、改行が原因で不具合が発生することがあります。
改行を削除して1行にしたい場合に、CLEAN関数が活躍します。
たとえば、セルA1に上記のような複数行のデータがあるとします。これをCLEAN関数で1行にするには、次のように入力します。
=CLEAN(A1)
これだけで、セル内の改行が削除され、1行にまとまった文字列が表示されます。
CLEAN関数は便利ですが、取り除けるのは「制御文字」のみです。たとえば、全角スペース、半角スペース、タブなどの「見えるけど邪魔な文字」は削除されません。
そのような場合は、SUBSTITUTE関数
と組み合わせるとより効果的です。
改行を削除するのではなく、スペースやカンマに置き換えたいときは、SUBSTITUTE関数を使います。
=SUBSTITUTE(A1,CHAR(10)," ")
この関数では、A1セル内の改行(CHAR(10))を半角スペースに置き換えています。
さらに、CLEAN関数と組み合わせて制御文字も削除するには:
objectivecコピーする編集する=CLEAN(SUBSTITUTE(A1,CHAR(10)," "))
これにより、改行はスペースに変わり、それ以外の不可視制御文字も除去されてクリーンなデータが完成します。
複数行にわたるデータが並んでいる場合でも、CLEAN関数をコピーして使えば簡単に一括処理が可能です。
たとえば、A1:A10の範囲にデータがある場合、B列に次のように記述し、オートフィルでコピーします。
=CLEAN(A1)
また、以下のようにARRAYFORMULA的な使い方をすれば一括変換が可能です(Office 365 / Excel 2021以降):
=TEXTJOIN(" ", TRUE, CLEAN(A1:A10))
この関数では、10個のセルの内容をCLEANで処理した上で、スペースで結合しています。
CSVファイルをインポートすると、よくあるのが「1つのセルに複数行の住所が入っている」ケースです。
例:
〒105-0001
東京都港区虎ノ門1-1-1
このような場合、改行を含んでいることでフィルターが効かなかったり、出力時に意図しないレイアウト崩れが起きたりします。これを以下のように整えます:
=SUBSTITUTE(CLEAN(A1),CHAR(10)," ")
このように関数を組み合わせることで、実用的なクレンジングが行えます。
CLEAN関数を使って整形した後、そのまま別のシートに貼り付ける場合は「値として貼り付け」を行うことを忘れないようにしましょう。
そうしないと、元のセルを削除したときにエラーが表示されてしまいます。
CLEAN関数は以下のような場面でとても役立ちます。
CLEAN関数は、Excelで作業をする際に「見えないトラブル」の原因となる制御文字や改行を取り除くための非常に便利な関数です。単独でも効果的ですが、SUBSTITUTE関数と組み合わせることで、より柔軟にデータ整形が可能になります。
Excelでの作業効率を上げるためにも、ぜひこのCLEAN関数を積極的に活用してみてください。地味ながら、実務において非常に効果のあるテクニックです。