投稿

ラベル(ASCII)が付いた投稿を表示しています

【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 ) ...

Excelのセル内改行コードについての、ちょっとした疑問

イメージ
Windowsにおいて、 Microsoft Excelのセル内改行コードは、 LF(0x0A) Windows OS標準の改行コードは、 CR+LF(0x0D0A) なぜ、違うのか? それは、Excelは当初Mac用(Macの改行コードはLF)のアプリケーションとして開発された為。 との文言を散見する。 実のところどうなのだろう? Excelの発売年は1985年。Macintosh版として。OSはSystem 2.0。 Macの改行コードは、 OS9までは、 CR(0x0D) OSXは、 LF(0x0A) なのだが、 実は、Mac版Excelのセル内改行コードは、OSXでも CR(0x0D) なのである。 実際、CHAR関数でセル内改行を表記するコードは、ASCIIコードの10進法での表記で表すが、 Windowsでは、CHAR(10)←LFを表す Macでは、CHAR(13)←CRを表す である。 故に、 「Excelは当初Mac用(Macの改行コードはLF)のアプリケーションとして開発された為」 と言うのは 当たっていないのではないか 。 因みに、Macにおいて、セル内改行を含むセルをコピーして、InDesignにて作成した表にペーストすると、Macのセル内改行がCRであるので、この前後で2つに別れて2つのセルに入ってしまい、結果行がズレて事故のモトになる。 これ故に、セル内改行が大キライなのである。(Windows版InDesignについては、残念ながら存じ上げません。あしからず。)