Zapery

100MBのCSVがExcelで開けないとき — 開かずに「抽出」しましょう

100MBのCSVがExcelで開けないとき — 開かずに「抽出」しましょう

精算システムからダウンロードしたCSVをダブルクリックしたら、Excelが砂時計のまま「応答なし」になった経験、ありませんか? ファイルが100MBを超えると、これはごく日常的に起こります。数分待ってようやく開けても苦労は続きます。Ctrl+Fを1回押すだけでまた長時間フリーズし、列が数十本もあるので目的の列を探すには延々と横スクロール。そのくせ本当に必要なのは、そのうちの3〜4列と、条件に合う数千行だけだったりしますよね。

結論から言います。こういうファイルはExcelで「開く」のではなく、必要なものだけ「抽出する」べきです。Excelはファイル全体を画面に読み込むツールなので、サイズが大きくなるほど遅くなるのは避けられません。一方、抽出方式なら条件に合う行や必要な列だけを選んで新しいファイルとして出力するため、元がどれだけ大きくても結果は軽量です。Power QueryもPythonも不要で、ブラウザだけ・コーディングなしでできます。

大容量CSVは開くものではなく抽出するもの — 条件に合う行・必要な列だけを取り出せば、100MBのファイルも軽い結果に変わります。

まず症状から診断しましょう — 症状別の原因表

大容量CSVで起こる問題は、ほぼこの3つに集約されます。自分の症状がどれに当たるか、まず確認してください。

症状 原因 解決策
開けない・長時間フリーズ(「応答なし」)Excelがファイル全体をメモリに読み込もうとする — 数十〜数百MBだと読み込み自体が限界開かずに、必要な行・列だけを抽出
データが途中で切れるExcelワークシートの上限 — 最大1,048,576行 × 16,384列(旧形式のxlsは65,536行)。超過分は画面に載らない元のCSVから直接抽出(Excelで保存しない)
文字が化けて読めない文字の保存方式(エンコーディング)の不一致 — 例えば韓国語システムのファイルはUTF-8とEUC-KR系が混在し、前提が違うと文字化けするエンコーディング自動判定、またはEUC-KRを手動選択
104万行超のCSVをExcelで開いて保存すると、データが消えます
上限を超えるファイルをExcelで開くと1,048,576行までしか読み込まれず、残りは画面に存在しません。この状態で保存すると、切れた分が欠落したファイルになるおそれがあります。元のCSVにはデータがそのまま残っているので、大きなファイルは絶対に「開いて保存」せず、元ファイルから抽出してください。

コーディングなしで抽出する方法 — 3ステップで完了

検索するとPower Query(Excelのデータ加工機能)やPythonスクリプトが解決策として出てきますが、習得にかかる時間はけっこうなものです。急ぎの実務なら、大容量CSVデータ抽出にファイルをアップロードするのが最速です。デスクトップなら250MBまで処理でき、ファイルはサーバーに送られずブラウザ内だけで処理されます。

こんなとき

「この値を含む行だけほしい」 → 一致行抽出

条件列と値を指定すると、一致する行だけを取り出します。たとえば注文履歴から特定の商品コードを含む行だけ、精算明細から特定の加盟店の分だけ、といった絞り込みができます。値を空にすると全行が対象になるので、何件あるか件数だけを素早く数える用途にも便利です。

こんなとき

「列が多すぎる、数本だけ見たい」 → 列値抽出

数十本の列から必要な列だけを選んで(複数同時選択に対応)、その列だけを含むファイルとしてダウンロードします。注文番号・金額・日付だけを抜き出してレポートに貼る、といった使い方ですね。重複を除いたユニーク値だけの抽出もできるので、「この列にはどんな値が入っているのか」を把握したいときにも役立ちます。

文字化けはエンコーディングの選択だけで直ります
ファイルをアップロードするとエンコーディングを自動判定し、それでも化けて見える場合はEUC-KR(韓国語Excel)を手動で選択すればOKです。データが壊れたのではなく、読み方が合っていなかっただけなので、元ファイルはそのまま、解釈の仕方を変えるだけで正常に表示されます。

こんな方が毎日直面している問題です

  • ECショップ運営者・ネットショップのセラー — モールの注文・精算明細を月単位でダウンロードすると数十MBは当たり前。特定商品・特定期間の行だけを抜き出して照合するときに。
  • マーケター — 広告レポートや顧客リストの生データから、キャンペーン別の行だけ、あるいはメール・コンバージョン列だけを抽出してレポートを作るときに。
  • 経理・精算担当者 — カード会社・決済代行の取引明細から特定加盟店・特定承認の分だけを選んで突き合わせるときに。ブラウザ内処理なので、機密性の高い売上データが外部に出ない点が重要です。
  • オープンデータの利用者 — 全国単位の公開CSVには数百万行のものもあり、自分の地域の行だけ抽出すればファイルが一気に軽くなります。
  • バックオフィス・CS運用者 — 会員・利用ログのエクスポートから特定条件の会員だけを選んで後続処理するときに。

知っておくと役立つこと3つ

顧客情報入りのCSVを、無闇にオンラインツールへ上げないでください
注文・会員データには氏名、連絡先、住所などの個人情報が含まれていることが多いものです。ファイルをサーバーにアップロードして処理するサービスなら、データが外部に出ていくということ。処理方式がブラウザ内完結(クライアント処理)かどうかを先に確認する習慣をつけましょう。ここで紹介した抽出ツールは、ファイルがブラウザの外に出ません。
モバイルは30MBまで — 大きなファイルはデスクトップで
モバイルブラウザは使えるメモリが少ないため、処理上限が30MBに制限されます(デスクトップは250MB)。数十MBを超えるファイルはデスクトップで扱うのが安全で高速です。100万行を超えるファイルも処理はできますが、プレビューが遅くなる場合がある旨の案内が表示されます。

まとめ — 大きなファイルと戦わず、必要なものだけ持ってくる

大容量CSVを前にして本当にやりたかったのは「ファイルを開くこと」ではなく、「その中の数行・数列を取り出すこと」のはずです。大容量CSVデータ抽出にファイルをアップロードして条件や列を指定するだけで、Excelが数分固まっていた作業が数秒の抽出に変わります。無料・インストール不要で、ファイルはブラウザの外に出ません。

Excelの上限値の正確な根拠は、Microsoft公式ドキュメントのExcel specifications and limits(英語ページ)グリッドを超えるデータの扱い方(英語ページ)をご参照ください。

Excelの上限は1,048,576行。それを超えるデータは開かずに抽出 — それが大容量CSVを扱う最速かつ最も安全な方法です。

よくある質問

関連ツール

あわせて読みたい