【EXCEL関数】セル内の余分なスペースやセル内改行を一瞬で取り去りたい時の関数
先に、結論から言うと、 CLEAN(SUBSTITUTE(SUBSTITUTE(A1," ","")," ","")) なぜこれが必要か? 自分だけでExcelに入力する分には全く必要がない代物である。 ただ、案件によって、他人に、それも組版作業を知らない人に、必要項目の入力をしてもらうことがママあって、このような場合、Excel上での見栄えを気にして、スペースを使ったインデントやセル内改行などをしてこられるのである。 こちらからとしたら、見栄えは組版でするので無駄になると言ってもしてこられるので、ナンとも。。。 スペースはまだしも、特にセル内改行は、ExcelからInDesignにコピペする時に非常に厄介。セル内改行のせいで、表が崩れまくるのである。 事故の元 である。 これを手作業で削除しても埒が明かないし、余計なものを消してしまう恐れもあるので、上記の関数を捻り出した次第。 本来なら、スペースやセル内改行以外の制御文字なども考慮に入れるべきかもしれないが、今までの傾向からしてスペースやセル内改行のみなのと、関数が今以上に煩雑になるのもなぁと思い、今回はこんな感じで落ち着いたのである。 関数の解説 CLEAN 関数 CLEAN 関数は、ASCIIコードの印刷できない先頭の32文字(10進法表記で0~31)を削除するために設計された。 Excelのセル内改行コードは、 Windowsでは、LF(ASCIIコードの10進法表記で10) Macでは、CR(ASCIIコードの10進法表記で13) であり、ASCIIコードの印刷できない先頭の32文字に含まれている。 故に、単純に、セル内改行を削除したいセルがA1とすると、CLEAN(A1)とすればよいだけ。 (詳細は、 CLEAN 関数 - Office サポート - Office Support ) SUBSTITUTE関数 SUBSTITUTE関数は、あるセル内の特定の文字列を別の文字列に置き換えるもの。 SUBSTITUTE(文字列, 検索文字列, 置換文字列, [置換対象]) (詳細は、 SUBSTITUTE 関数 - Office サポート - Office Support )