CSVのセル内改行で行がずれる原因と正しい引用符の直し方
CSVのセル内改行で行がずれる原因を正常例と壊れた例で比較し、ダブルクォートを使った正しい修正方法を解説します。
公式情報と実際の操作手順を確認して内容を整理しています。
備考欄などに改行があるCSVで、次の人のデータまでずれることがあります。原因は改行そのものではなく、改行を含む項目全体が半角ダブルクォートで囲まれていないことが中心です。
先に確認
- 元ファイルは上書きせず、コピーで作業してください。
- 保存前に元CSVをメモ帳などでも確認してください。
- 画面名はExcelのバージョンで多少異なる場合があります。
正常例と壊れた例
正常例は 1,田中,"午前希望
電話連絡済み" のように、改行を含む項目全体を囲みます。引用符がなければ「電話連絡済み」が次の行として解釈されます。RFC 4180でも、改行を含むフィールドはダブルクォートで囲む形が示されています。
確認と修正の手順
- コピーをテキストエディターで開きます。
- ずれ始める直前のレコードを探します。
- 改行を含む項目の開始と終了が半角の引用符で囲まれているか確認します。
- 項目内の引用符自体は二つ重ねます。
- Excelのインポート画面で列数を確認します。
改行を削除する場合
読み込み後なら =CLEAN(A2) で一部の制御文字を除去できます。ただしCSV構造が壊れている場合は、読み込み前に引用符を直す必要があります。
注意点
- 見た目だけで行を削除すると別レコードを結合する危険があります。
- 全角引用符はCSVの囲み文字として使いません。
- 毎回壊れる場合は出力元の設定を確認します。
作業後の確認
- 先頭・中央・末尾から代表値を選び、元CSVと比較します。
- 行数と列数が変わっていないことを確認します。
- Excelで使い続ける作業ファイルは.xlsx形式で保存します。
まとめ
セル内改行を残すならフィールド全体を半角ダブルクォートで囲みます。ずれ始める位置と各行の列数を確認して修正します。