Signal and Strata

エクセルのセル内改行を一括削除!置換ワザ&Clean関数の効果を本音検証

Whether you are following エクセルのセル内改行を一括削除!置換ワザ&Clean関数の効果を本音検証, here is a clear overview you shouldn't miss.

業務用の共有シートやテンプレートでは、元データを直接書き換える置換操作は敬遠される。データ監査や再計算の観点から、数式を用いた非破壊的なデータクレンジングが鉄則だ。ここで主役となるのが「CLEAN関数」と「SUBSTITUTE関数」である。

CLEAN関数は、ワークシート上の印刷不可能な制御文字(ASCII値0〜31)をすべて削除する目的で設計された関数だ。構文は極めて明快で、=CLEAN(A2)と記述するだけでセル内のLFコードが消去される。しかし、ここに大きな落とし穴が存在する。改行コードが単に「蒸発」するため、前後に入力されていた文字列が直接連結されてしまうのだ。例えば「John」と「Smith」がセル内で改行されていた場合、出力結果は「JohnSmith」となり、姓名の判別不能なデータ汚染を引き起こす。

この欠陥を克服するのがSUBSTITUTE関数とCHAR(10)の組み合わせだ。文字コード10番を指定して任意の文字に置き換えるため、以下のように記述する。

=SUBSTITUTE(A2, CHAR(10), " ")

この数式を適用すれば、改行位置に半角スペースが正確に挿入される。さらに、改行を読点(、)に置き換えて文章としての体裁を保つなど、出力の制御性を完全に掌握できる。WebからコピーしたデータなどでCR(復帰コード、CHAR(13))が混在している疑いがある場合は、=SUBSTITUTE(SUBSTITUTE(A2, CHAR(13), ""), CHAR(10), " ")とネストさせることで、あらゆるOS由来の改行コードを無力化できる。

Related Stories