【基礎知識】CSVとは?仕組み・Excelとの違い・文字化け対策まとめ
技術
公開日: 2026/04/02
目次
※この記事にはプロモーションを含みます
はじめに
「CSVファイルをExcelで開いたら文字化けした」「CSVって何?Excelと何が違うの?」などと、業務やプログラミング学習でCSVファイルを扱う場面は非常に多いものの、正確に理解している人は意外と少ないものです。
この記事では、CSVの意味・ファイルの構造・Excelとの違いから、よく起きる文字化けの原因と対処法、さらにプログラミング(Python)でCSVを読み書きする基礎的な方法まで体系的に解説します。業務でCSVを使う方にも、データ処理を学びたいプログラミング学習者にも役立つ内容です。
CSVとは?
CSVの正式名称と定義
CSVとは「Comma-Separated Values」の略で、日本語にすると「カンマ区切りの値」という意味です。データをカンマ(,)で区切って並べたテキスト形式のファイルであり、拡張子は .csv です。
定義としては「各行がレコード(1件のデータ)、各列の値がカンマで区切られたプレーンテキストファイル」となります。特定のソフトウェアに依存しない汎用的なデータ形式であり、ExcelやGoogleスプレッドシートをはじめ、ほぼすべてのデータ処理ツール・プログラミング言語で読み書きできます。
CSVファイルの内部構造
CSVファイルの中身は、メモ帳(テキストエディタ)で開くと以下のように見えます。
名前,年齢,職業
田中太郎,28,エンジニア
山田花子,35,デザイナー
鈴木一朗,42,マネージャー
1行目がヘッダー行(列名)、2行目以降がデータ行です。カンマで区切られた各値がスプレッドシートの「セル」に相当します。
データの中にカンマが含まれる場合は、値全体をダブルクォーテーション(")で囲むルールがあります。
商品名,価格,説明
りんご,150,"甘くて、みずみずしい果物"
CSVが広く使われる理由

CSVが多くの場面で使われるのには明確な理由があります。
- 汎用性が高く、OSやソフトウェアを問わずどこでも読み書きできます
- 書式情報を持たないテキスト形式のため、ファイルサイズが小さく軽量です
- テキストエディタで中身を直接確認・編集でき、可読性があります
- ほぼすべてのプログラミング言語でCSV操作ライブラリが用意されており、プログラムで扱いやすいです
- 異なるシステム・アプリ間でのデータのやりとりに使える標準フォーマットとして定着しています
CSVとExcelの違い
ファイル形式・保存できる情報の違い
CSVとExcelファイル(.xlsx)の最大の違いは、保存できる情報の量と種類です。
| 項目 | CSV | Excel(.xlsx) |
|---|---|---|
| 文字・数値データ | 保存できる | 保存できる |
| セルの書式(色・太字など) | 保存できない | 保存できる |
| 数式・関数 | 保存できない(値のみ) | 保存できる |
| 複数シート | 保存できない(1シートのみ) | 保存できる |
| グラフ・画像 | 保存できない | 保存できる |
| ファイルサイズ | 小さい | 大きい |
CSVは「純粋なデータだけ」を保存するフォーマットです。Excelで作成した見た目の装飾・数式・グラフはCSVに保存すると失われます。
CSVを使うべき場面・Excelを使うべき場面
CSVとExcelは用途によって使い分けることが大切です。以下に代表的な場面を整理します。
| 場面 | 推奨 | 理由 |
|---|---|---|
| 異なるシステム・アプリ間のデータ連携 | CSV | 互換性が高く、どのシステムでも読み込める |
| プログラムでデータを処理・分析する | CSV | PythonやRなどから直接読み込みやすい |
| データベースへのインポート・エクスポート | CSV | 多くのDBがCSVインポートをサポート |
| 書式・グラフ付きのレポート作成 | Excel | 装飾・数式が必要な場合はExcelが適切 |
| 複数人で共同編集する | Excel / Googleスプレッドシート | 共有・コメント機能が充実 |
ExcelでCSVを開く・保存する方法
ExcelでCSVを開く方法
通常のファイルを開く操作(ファイル → 開く)でCSVファイルを選択すると、Excelで表示できます。ただし、文字コードによっては文字化けが起きる場合があります(詳細は次の章で解説)。
ExcelでCSVを保存する方法
1.Excelで編集したファイルを「名前を付けて保存」を選択
2.ファイルの種類で「CSV(コンマ区切り)(*.csv)」を選択
3.保存する際に「このファイルをCSV形式のままにしますか?」と表示されるので「はい」を選択
保存時に書式・数式は失われる点に注意してください。
CSV文字化けの原因と対処法

文字化けが起きる仕組み(文字コードとは)
CSVの文字化けは、ファイルの「文字コード」とアプリケーションが期待する「文字コード」が一致しないときに発生します。
「文字コード」とは、文字(ひらがな・漢字など)をコンピュータが扱えるデータ(数値)に変換するためのルールのことです。主な文字コードには以下のものがあります。
| 文字コード | 特徴 | 主な使用場面 |
|---|---|---|
| UTF-8 | 世界標準。日本語を含む多言語対応 | Webシステム・Linux・Mac・プログラミング全般 |
| Shift-JIS(SJIS) | Windows日本語環境の従来標準 | 古いWindowsアプリ・レガシーシステム |
| UTF-8(BOM付き) | UTF-8にBOM(識別情報)を付加したもの | ExcelがUTF-8を正しく認識するために使用 |
よくある文字化けのパターンは「UTF-8で保存されたCSVをWindowsのExcelで開いたら日本語が文字化けした」というケースです。これはExcelがデフォルトでShift-JISを期待するためです。
Windowsで文字化けせずCSVを開く方法
Windowsで文字化けせずにCSVを開くには、以下の2つの方法があります。
方法1:Excelのインポート機能を使う(推奨)
1.Excelを開き、「データ」タブ →「テキストまたはCSVから」を選択
2.対象のCSVファイルを選択
3.文字コードのプレビューを確認し、「65001: Unicode (UTF-8)」を選択
4.「読み込み」をクリック
方法2:メモ帳で文字コードを変換して保存し直す
1.CSVファイルをメモ帳で開く
2.「ファイル」→「名前を付けて保存」を選択
3.文字コードを「ANSI(Shift-JIS)」に変更して保存
4.変換後のファイルをExcelで開く
Macで文字化けせずCSVを開く方法
MacのExcelも文字コードの問題が発生することがあります。
方法1:ExcelのデータインポートからUTF-8を指定
Windows版と同様に、「データ」タブ →「テキストまたはCSVから」でインポートし、UTF-8を指定します。
方法2:ターミナル(iconv)で文字コードを変換
Macの「ターミナル」でiconvコマンドを使い、文字コードを変換する方法も有効です。
# Shift-JIS → UTF-8 に変換
iconv -f SJIS -t UTF-8 input.csv > output.csv
プログラミングを学ぶ方は、Pythonのエンコーディング指定(後述)を使う方法も覚えておくと実用的です。
PythonでCSVを読み書きする基礎
csvモジュールを使った読み込み
PythonにはCSVを扱うための標準ライブラリ csv が用意されています。インストール不要でそのまま使えます。
import csv
# CSVファイルを読み込む
with open('data.csv', 'r', encoding='utf-8') as f:
reader = csv.reader(f)
for row in reader:
print(row)
文字化けを防ぐために encoding='utf-8' を明示的に指定することが重要です。Shift-JISのファイルを読み込む場合は encoding='shift-jis' に変更します。
ヘッダー行をキーとして辞書形式で読み込む場合は csv.DictReader が便利です。
import csv
with open('data.csv', 'r', encoding='utf-8') as f:
reader = csv.DictReader(f)
for row in reader:
print(row['名前'], row['年齢'])
csvモジュールを使った書き込み
CSVファイルへの書き込みも csv モジュールで簡単に行えます。
import csv
# 書き込むデータ
data = [
['名前', '年齢', '職業'],
['田中太郎', 28, 'エンジニア'],
['山田花子', 35, 'デザイナー'],
]
with open('output.csv', 'w', encoding='utf-8', newline='') as f:
writer = csv.writer(f)
writer.writerows(data)
WindowsのExcelで開くことを想定する場合は encoding='utf-8-sig'(BOM付きUTF-8)を指定すると文字化けを防げます。
pandasを使ったCSV操作
データ分析でよく使われるライブラリ pandas を使うと、より直感的にCSVを操作できます。
import pandas as pd
# CSVを読み込んでデータフレームに変換
df = pd.read_csv('data.csv', encoding='utf-8')
# 内容を確認
print(df.head())
# 特定列のフィルタリング
filtered = df[df['年齢'] > 30]
# 結果をCSVに書き出す
filtered.to_csv('filtered.csv', index=False, encoding='utf-8-sig')
pandasはCSVの読み込みからデータ加工・集計・書き出しまでを一貫して扱えるため、データ分析・機械学習の前処理作業には欠かせないツールです。
CSVを活用したデータ処理とキャリアへの接続
CSVが使われる現場とデータ活用の場面
CSVは多くのビジネス現場・IT開発現場で日常的に使われています。
- ECサイト・販売管理での商品マスター・注文データのエクスポート/インポート
- Google AnalyticsやGoogle広告からのマーケティングデータのエクスポート
- ログデータ・センサーデータのCSVを解析して洞察を導くデータ分析
- 異なるシステム間でのデータ受け渡しフォーマットとしてのシステム連携
- 機械学習の学習データのインプット形式としての活用
CSVを扱えるスキルは、データエンジニア・データアナリスト・バックエンドエンジニアなど多くのIT職種で必須の基礎知識です。
CSVを扱うITスキルとキャリア
CSVの理解は、IT・データ活用系のキャリアへの第一歩になります。
| スキルレベル | できること | キャリアへの接続 |
|---|---|---|
| 入門 | ExcelでCSVを正しく開く・保存する | 事務・業務効率化 |
| 基礎 | PythonのcsvモジュールでCSVを読み書きする | バックエンド開発・自動化 |
| 応用 | pandasでCSVデータを加工・集計・可視化する | データアナリスト・データエンジニア |
| 発展 | 大規模CSVをデータベースやBigQueryに取り込み処理する | データエンジニア・MLエンジニア |
CSVはシンプルなファイル形式ですが、それを扱うスキルは確実にITキャリアの土台になります。Pythonでデータを読み書きできる段階に進めば、データ分析・Web開発・自動化など多様な方向にキャリアを広げられます。
まとめ
CSVとはカンマ区切りのテキスト形式のファイルで、システム間のデータ連携やプログラムでのデータ処理に広く使われる汎用性の高いフォーマットです。Excelとは「書式や数式を保存できないが軽量で互換性が高い」という特性で使い分けます。
文字化けはUTF-8とShift-JISの文字コードの不一致が原因であり、Excelのインポート機能で文字コードを指定することで解決できます。Pythonではcsvモジュールやpandasライブラリを使って手軽にCSVを読み書きでき、データ分析・機械学習・システム開発の現場で幅広く活用されます。