セル内で改行しているデータを一行にしたい。
印字できない制御文字(コード)が邪魔・・。
◆こんな時
データ内の制御文字を取り除きたい。
◆解決ポイント
CLEAN 関数を使います。
◆解決方法
使い方はとっても簡単。
セルA1の改行されているデータをセルA2に入力したCLEAN関数で
1行にします。
すると下図のように印字できない制御文字が取り除かれて表示されます。
・仮に結果が異なるときは・・・
たとえばA1のデータが改行されたものではなく、改行方法を知らないので
空白(スペース)を挿入して無理やり改行っぽくしたデータの場合は上図
のようになります。
この場合は改行されていないので、
次の方法で不要な空白を取り除くことが可能です。
1)セルA3に以下の式を入力します。
=TRIM(A1) ・・・ TRIM関数は文字中の連続した空白を1つにまとめます。
1つになった空白はTRIM関数ではこれ以上まとめられないのでSUBSTITUTE関数で空白文字を取り除きます。(ここでは半角の空白を想定)
2)セルA3の式をSUBSTITUTE関数で以下のようにネストします。
=SUBSTITUTE(TRIM(A1)," ","")
この結果は下図のようになります。
※改行と空白挿入が混在している場合は、CLEAN関数とTRIM関数を組み合わせて次のように記述することで解決できます。
セルA2=SUBSTITUTE(TRIM(CLEAN(A1))," ","")
因みにEXCELの改行文字は CHAR(10) で表現できるので改行だけを取り除く
ときは SUBSTITUTE(A1,CHAR(10),"") の式でも代用できます。
参考)Unicode 文字セットで追加された制御文字
(値 127,129,141,143,144,157)はCLEAN関数だけでは
取り除くことはできません。
◆「StiLL」のコマンドボタンについて「StiLL」のボタンの機能(BtSetValue)等を使って上記の式を任意のセルに
コピーできます。これを応用すると、
①外部からのデータインポート、②制御文字の除去、③加工などの流れを
EXCEL上で自動化できます。しかもやさしく簡単に実現します。
是非「StiLL」体験セミナーへ参加してみてください。あなたの働き方改革をやさしく実現します!それではまた来週。 PR