ブログ

【基礎知識】CSVとは?仕組み・Excelとの違い・文字化け対策まとめ

【基礎知識】CSVとは?仕組み・Excelとの違い・文字化け対策まとめ

目次

※この記事にはプロモーションを含みます

WEBMASTERSのトップページへ

はじめに

「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が使われる理由

CSVが多くの場面で使われるのには明確な理由があります。

  • 汎用性が高く、OSやソフトウェアを問わずどこでも読み書きできます
  • 書式情報を持たないテキスト形式のため、ファイルサイズが小さく軽量です
  • テキストエディタで中身を直接確認・編集でき、可読性があります
  • ほぼすべてのプログラミング言語でCSV操作ライブラリが用意されており、プログラムで扱いやすいです
  • 異なるシステム・アプリ間でのデータのやりとりに使える標準フォーマットとして定着しています

CSVとExcelの違い

ファイル形式・保存できる情報の違い

CSVとExcelファイル(.xlsx)の最大の違いは、保存できる情報の量と種類です。

項目CSVExcel(.xlsx)
文字・数値データ保存できる保存できる
セルの書式(色・太字など)保存できない保存できる
数式・関数保存できない(値のみ)保存できる
複数シート保存できない(1シートのみ)保存できる
グラフ・画像保存できない保存できる
ファイルサイズ小さい大きい

CSVは「純粋なデータだけ」を保存するフォーマットです。Excelで作成した見た目の装飾・数式・グラフはCSVに保存すると失われます。

CSVを使うべき場面・Excelを使うべき場面

CSVとExcelは用途によって使い分けることが大切です。以下に代表的な場面を整理します。

場面推奨理由
異なるシステム・アプリ間のデータ連携CSV互換性が高く、どのシステムでも読み込める
プログラムでデータを処理・分析するCSVPythonや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を読み書きでき、データ分析・機械学習・システム開発の現場で幅広く活用されます。