データファイルのベストプラクティス(CSV および Excel)

1 分で読めます

目的: ソフトウェアが推測せず正確に読み取れるよう、整った長方形の表を作る。

クイックスタート:5つの黄金ルール

  1. 1ファイル(または1シート)につき表は1つ。
  1. ヘッダー行は1行のみ(最初の行)。明確で一意の列名を使う。
  1. 結合セル、空白のスペーサー行、データ内の合計行は使わない。
  1. 列ごとにデータ型を統一(例:日付列はすべて日付、数値列はすべて数値)。
  1. 日付・金額・はい/いいえ・欠損値は標準フォーマットを使う(詳細は下記)。

表の作り方

1) ファイル形式

  • CSV(カンマ区切り)が最有力。Excelで保存する場合は「CSV UTF-8(コンマ区切り)」を選ぶ。
  • Excel(.xlsx)も可。元データは「Data」シートに置き、集計やピボットは別シートにまとめる。

2) レイアウト(きれいな長方形にする)

  • 1行目は列名だけ。タイトル、メモ、ロゴ、日付は上部に置かない。
  • 結合セルは禁止。
  • 表内に空白行や空白列を入れない。
  • 合計・小計の行はデータ内に入れない。集計は別シートで作成。

3) 列名(ヘッダー行)

  • 重複せず、短くシンプルに(例:order_id, order_date, amount)。
  • 句読点や特殊文字は避ける。意味が伝わる最小限に。
  • 単位が重要なら列名に含める(例:temperature_c, weight_kg)。

4) 列ごとの一貫性

  • IDやコード(顧客番号、郵便番号など):テキストとして保持(先頭ゼロはそのまま 例: 00123 00123)。
  • 数値: 数字のみ。$%、カンマ区切り(例: 1,234)は禁止。
  • 金額: 数値と通貨コードを分ける(例:currency = USD)。
  • パーセンテージ: 次のどちらかに統一: 0.25(25%)または 25.0(列名を percent にする)。
  • はい/いいえ: TRUE/FALSE または Yes/No のように2値に統一。
  • 日付: YYYY-MM-DD 形式(例:2025-10-21)。
  • 日時: YYYY-MM-DD HH:MM:SS(タイムゾーンが分かれば +02:00Z を付ける)。
  • 欠損値: 空白セルのままにする。N/A などは入れない。

5) 単位とカテゴリ

  • 単位が必要な数値は、列名に単位を付ける(length_m)または別列 unit を追加。
  • カテゴリ列は短いリストに制限(例:statusnew, processing, shipped, cancelled のみ)。

6) キーと重複

  • 自然な一意識別子(例:order_id)がある場合は必ず含め、全行で一意かつ欠損なしにする。

Excel ユーザー向けの追加ヒント

  • 元データは「Data」シートに値のみで配置(数式は値貼り付けにして固定)。
  • 行・列はすべて表示。フィルターは可だが、非表示データは残さない。
  • セルの色、太字、コメントに意味を持たせない(機械は読み取れない)。

CSV ユーザー向けの追加ヒント

  • 保存時は CSV UTF-8 を選ぶ。
  • 小数点にカンマを使う地域設定の場合は、次のいずれかを選ぶ:
    • カンマをドットに置き換える。(12,5 → 12.5)
    • もしくはタブ区切り(TSV)で保存する。

例:

✅ 目指すべき良いCSV

order_id,order_date,customer_id,amount,currency,shipped,ship_country
A-1001,2025-07-14,C-00789,1234.50,USD,TRUE,US
A-1002,2025-07-15,C-00791,89.99,USD,FALSE,DE
A-1003,2025-07-16,C-00792,0.00,USD,TRUE,GB

これが良い理由

  • ヘッダーは1行で一意かつ簡潔。
  • フォーマットが統一:ISO日付(YYYY-MM-DD)、数値に $ やカンマなし、TRUE/FALSE の論理値、currency 通貨は別列。
  • 空白行・合計行・不要列がないため、読み取りが安定。

❌ 避けるべき問題のあるCSV

ACME North Region Sales Report
Generated on,10/21/2025
order id,order date,customer id,amount,currency,shipped,ship country,
A-1001,14/07/25,C-00789,$1,234.50,USD,Yes,US
A-1002,07/15/2025,C-00791,89,99,USD,y,DE
A-1003,2025-07-16,C-00792,N/A,USD,TRUE, GB
Totals,,,$1,324.49,USD,,

問題点(行ごと)

  • 1–2行目: ヘッダーの上にタイトルやメタ情報がある。
  • 3行目: ヘッダーに空白・重複・末尾カンマがあり、余分な空列が生じる。
  • 4行目: 曖昧な日付(14/07/25)、通貨記号+カンマ区切り、ブール値がYesで不統一。
  • 5行目: カンマ小数(89,99)で列ずれ、ブール値がyで不統一。
  • 6行目: 欠損にN/A使用、国コードの前に空白が混入( GB)。
  • 7行目: データ内に合計行、金額に通貨記号と桁区切り。

データ辞書(オプション)

列の意味や書式をひと目で確認できるチートシートを用意しましょう。:

  • Excelの場合:別シート名は「Data Dictionary」
  • CSVの場合:となりにREADME(テキスト)を添える

テンプレート:

列名意味許可値 / フォーマット必須?単位/メモ
order_id注文の一意なIDA-10234テキストはい先頭ゼロは保持
order_date注文日2025-10-21YYYY-MM-DDはい
amount注文金額(数値、記号なし)1234.50数値(ドット小数)はい通貨は currency 列で指定
currency金額の通貨USDISO通貨コード(例:USD, EUR, JPY)はい
shipped出荷済みかTRUETRUE/FALSEいいえYes/Noにしない

メタデータ:出典、作成者、作成・エクスポート日時、タイムゾーン、適用フィルター、注意点などを1か所にまとめて記載すると、再現性と引き継ぎがラクになります。


アップロード前チェックリスト(コピー可)


なぜ重要か

推測させないことが、正確さ・速さ・再現性の土台になります。

形式が一定の「きれいな長方形」なら、取り込みエラーや解析の手戻りが激減し、先頭ゼロの消失、日付の誤読、非表示データの見落としといった“ありがちな事故”を未然に防げます。

この答えはあなたの質問に答えましたか?