CSVとExcelの違い
形式の違いと、データの受け渡し・チェックで気をつけたいポイントをまとめます。
CSVとExcelとは
CSV(Comma-Separated Values)は、カンマ(またはタブ・セミコロン)で区切られたプレーンテキストのデータ形式です。1行が1レコードを表し、列は区切り文字で分かれます。書式(色・フォント)・数式・複数シート・画像は一切含まず、データそのものだけが格納されます。どのテキストエディタでも開け、プログラムからも扱いやすいため、システム間のデータ交換に広く使われています。
Excel(.xlsx)は、Microsoft Excel用のバイナリ形式(内部はZIPで圧縮されたXML)です。セルごとの書式・数式・グラフ・複数シート・マクロ・画像などを含むことができ、人間が表計算ソフトで編集・閲覧する用途に最適化されています。機能は豊富ですが、Excelがない環境では開けないことがあり、システム間の自動連携には向きません。
機能比較
- 複数シート
- Excel:可能(1ファイルに複数のシートを含められる)、CSV:不可(1ファイル=1シート分のデータのみ)。ExcelをCSVとして保存すると、アクティブなシートのみが書き出され、他のシートは失われます。
- 数式と計算
- Excel:可能(SUM・VLOOKUP・IFなどの数式をセルに記述できる)、CSV:不可(CSVには計算結果の値だけが格納される)。ExcelをCSVに保存すると、すべての数式は計算後の値に置き換わります。
- 書式とスタイル
- Excel:可能(セルの色・太字・罫線・フォントサイズなど)、CSV:不可(プレーンテキストのため書式情報は一切ない)。CSVはデータだけを扱います。
- 文字コード(エンコーディング)
- CSV:重要な考慮点(UTF-8・Shift-JIS・Windows-1252など複数のエンコーディングが存在し、受け渡し先のシステムに合わせる必要がある)、Excel:自動管理(Excelが内部で管理するため利用者が意識することは少ない)。
- ファイルサイズ
- CSV:小さい(同じデータ量ならCSVの方が小さく、処理速度も速い)、Excel:大きい(書式・数式・メタデータが含まれるため大きくなる)。
- 互換性
- CSV:高い(ほぼすべてのプログラミング言語・データベース・クラウドサービスがCSVのインポート/エクスポートに対応)、Excel:中程度(Excelまたは互換ソフト、あるいは専用ライブラリが必要)。
- データ型
- CSV:すべてテキスト(受け取り側のシステムが型を解釈する)、Excel:型情報あり(数値・日付・文字列などを区別して保存できる)。
CSVを選ぶ場面
- データベースへのインポート・エクスポート — ほとんどのDBMS(MySQL・PostgreSQL・SQLiteなど)はCSVのインポートに対応。Excelをそのままインポートできるツールは少ない。
- APIやバッチ処理との連携 — APIレスポンス・バッチ処理の入力ファイル・ログ解析ではCSVが標準的。
- 複数システム間の受け渡し — CRM・ERPなど異なるシステム間でデータを移行するとき、CSVが共通フォーマットとして指定されることが多い。
- バージョン管理・差分確認 — プレーンテキストなのでGitで差分が確認でき、変更の追跡に向いている。
- 軽量処理・大量データ — 数百万行規模のデータはExcelでは開けないことがあるが、CSVはストリーミング処理が可能。
Excelを選ぶ場面
- 人間が直接編集・閲覧する — 書式・フィルタ・ソート・グラフを使って手動でデータを分析するとき。
- 数式や計算が必要 — 合計・平均・条件分岐・参照などの計算をシート上で行うとき。
- 複数シートで管理 — 複数の関連テーブルを1ファイルにまとめて管理するとき。
- プレゼンテーション用の表 — 見栄えよく整形した表を報告書やプレゼン資料に使うとき。
ExcelからCSVに保存するときの注意点
- 文字コード(エンコーディング)の問題 — 「名前を付けて保存→CSV(カンマ区切り)(*.csv)」を使うと、日本語WindowsではデフォルトでShift-JISで保存されます。UTF-8が必要な場合は「CSV UTF-8(コンマ区切り)(*.csv)」を選んでください。UTF-8 BOM付きで保存され、他システムでの文字化けを防げます。詳しくは文字化け・エンコーディング問題を参照してください。
- 先頭のゼロが消える — Excelは数値として認識したセルの先頭ゼロを自動的に削除します。「0123」は「123」になります。会員番号・商品コード・郵便番号など先頭ゼロが必要な場合は、保存前にその列を「文字列」形式に変更してください。
- 日付形式が変わる — Excelの日付セルはCSV保存時にExcelの表示形式で書き出されます(例:「2024/1/5」が「2024年1月5日」になるなど)。受け渡し先のシステムが想定する日付形式と一致しているか確認してください。
- 数式が値に変換される — すべての数式は計算結果の値になります。数式自体はCSVには含まれません。
- 複数シートは失われる — CSVはアクティブなシートのみを書き出します。他のシートのデータは失われます。複数シートを別々のCSVに保存する必要がある場合は、シートごとに保存操作を繰り返してください。
ExcelでCSVを開くときの注意点
- BOMなしUTF-8の文字化け — UTF-8 BOMなしのCSVをExcelでダブルクリックして開くと、ExcelはShift-JISなど地域エンコーディングを仮定するため日本語が文字化けします。文字化け復元でUTF-8 BOMに変換してからExcelで開くと正しく表示されます。
- 区切り文字の誤認識 — カンマ区切りのCSVをExcelで開いても、すべてが1列に入ることがあります。Excelの「データ→テキストファイルのインポート」からウィザードを使って区切り文字を明示的に指定してください。
- 数値・コードがテキストと認識されない — 「001」「2024-01-05」のようなデータを、Excelが勝手に数値や日付に変換することがあります。インポートウィザードで該当列のデータ型を「テキスト」に設定するか、形式・基本チェックで事前に内容を確認してください。
ツールを開く
- 形式・基本チェック — Excelで保存した直後の文字コード・区切り・列数の確認
- 文字化け復元 — Shift-JISや文字化けしたCSVをUTF-8 BOMに変換
- CSV単体チェック — 先頭ゼロ消失・空白・重複キーの検出
- 文字化け・エンコーディング問題 — エンコーディングの詳細ガイド