メモ:Ctrl+Jが効かない理由はこれ。CHAR(10)/CHAR(13)と改行の正体

Office:Excel

こんにちは。いーかです。
Excelの「データ整形」でつまずきがちな“見えない文字”を、サクッと解きほぐすメモです。

30秒まとめ(結論1行)

CHAR(10) と CHAR(13) は “文字コード(制御文字)の番号”で、改行の正体(LF/CR)。だから Ctrl+J が効かない時は CR/LF混在を疑う。


CHAR(10) / CHAR(13) って何者?

Excelの CHAR(n)「番号nの文字(コードポイント)」を返す関数
この “番号” が、昔から使われてきた ASCII(互換の体系) の制御文字に対応してる。

  • CHAR(10) = LF(Line Feed):次の行へ送る(\n
  • CHAR(13) = CR(Carriage Return):行頭へ戻す(\r

つまりこれは 「文字コード(正確には制御文字のコードポイント)」の話

※ここで言っているのは、Excel全体の文字コードがどうこう…という難しい話ではなく、この改行2文字(CR/LF)は互換的に長年使われ続けているので、実務では安心してOK。


なんで 10 と 13 なの?(超ざっくり由来)

昔のタイプライター/プリンタの動作が元ネタで、

  • 「紙を1行送る」= LF
  • 「印字位置を行頭に戻す」= CR

という 2つの動作が別命令だった。
その命令が規格として 10番(LF)と13番(CR) に割り当てられた、という歴史。


Windows / Unix で改行が違うのもここ

改行の表現は、OS文化でこう分かれる:

  • Windows:CR + LF(13 + 10)= \r\n
  • Unix / Linux / macOS:LF(10)= \n
  • (古いMac OS):CR(13)= \r

なので、Excelに外部データをコピペ・CSV取り込みすると
LFだけ / CRだけ / CRLF混在 が起きて、整形がややこしくなる。


Ctrl+Jが効かない理由(ほぼこれ)

Ctrl+H の置換で使う Ctrl+J は、体感として
LF(CHAR(10))を入力して検索するショートカット」みたいなもの。

だから、データ側が CR(CHAR(13))混じりだと、Ctrl+Jだけでは取り切れないことがある。
このときは CR/LF混在を掃除するのが正解。


Excelのセル内改行はどっち?

Excelで Alt + Enter で入る「セル内改行」は、基本 LF(CHAR(10)) が多い。
ただし、他アプリ由来のデータは CRLF混在になりやすいので、現場では両方掃除が安全。


実務で使う “確実テンプレ”(混在でも強い)

A1の中の改行をスペースに寄せたいなら:

=SUBSTITUTE(SUBSTITUTE(A1,CHAR(13),""),CHAR(10)," ")
  • CR(13)を消す → LF(10)をスペースへ
  • 結果がOKなら、コピーして 値貼り付けで確定(事故りにくい)

今日の1アクション

自分のデータに「LF/CRが混ざってるか」だけ確認してみる:

  • LFがある? → =ISNUMBER(SEARCH(CHAR(10),A1))
  • CRがある? → =ISNUMBER(SEARCH(CHAR(13),A1))

TRUEなら混入してる。


ミニクイズ(答えは末尾)

Q1. CHAR(10) は LF/CR どっち?
Q2. Windowsの改行は基本、CRとLFどっちを使う?
Q3. Ctrl+J だけで置換しきれない時に疑うべきものは?
Q4. 混在でも強い“確実テンプレ”は、CHAR(10)とCHAR(13)をどう扱う?


今日のひとこと(成長ログ)

「改行は見た目じゃなくて“文字”」って気づくと、データ整形が急にラクになる。


解答とくわしい解説

A1. LF(Line Feed)
A2. CR + LF(\r\n)
A3. CR/LF混在(別アプリ由来の改行)
A4. CHAR(13)を消して、CHAR(10)をスペース(または空欄)に置換する


コメント

タイトルとURLをコピーしました