ADVERTISEMENT

【Googleスプレッドシート】大容量CSVを分割インポート!500MB制限への対処

【Googleスプレッドシート】大容量CSVを分割インポート!500MB制限への対処
🛡️ 超解決

大容量のCSVファイルをGoogleスプレッドシートにインポートしようとしたとき、500MBの制限やセル数の上限に引っかかって困った経験はありませんか。特にログデータや売上データなど、数万行・数百MBのファイルを扱う機会は増えています。この記事では、CSVファイルを適切なサイズに分割してからGoogleスプレッドシートに取り込む方法を、具体的な手順とともに解説します。分割のテクニックを身につければ、巨大なデータも安心してスプレッドシートで管理できるようになります。

【要点】大容量CSVを分割してインポートする3ステップ

  • テキストエディタやスプレッドシート関数で行数を区切って分割: ファイルを10万行ごとなどに分割し、各ファイルを個別にインポートします。
  • Googleスプレッドシートの「ファイル」→「インポート」からCSVを読み込み: 分割後のファイルを通常のインポート操作で各シートに取り込みます。
  • QUERY関数やIMPORTRANGEでデータを統合: 必要に応じて、分割したデータを1つのシートに結合して分析できる状態にします。

ADVERTISEMENT

Googleスプレッドシートのインポート制限と分割の必要性

Googleスプレッドシートには、1ファイルあたりのセル数が1000万セル、列数が1万826列、ファイルサイズが50MB(変換前のCSVは500MB)という制限があります。CSVをインポートする場合、元のファイルが500MBを超えるとエラーが発生します。また、セル数の上限に達してもインポートできません。これらの制限を回避するには、CSVを複数の小さなファイルに分割してからインポートし、必要に応じてスプレッドシート内で結合する方法が有効です。

大容量CSVを分割する具体的な手順

ここでは、Windows標準のPowerShell、Python、またはオンラインツールを使ってCSVを分割する方法を紹介します。どの方法も無料で利用でき、初心者でも簡単に行えます。

PowerShellを使って行数で分割する方法

  1. PowerShellを管理者として開く
    Windowsのスタートメニューで「PowerShell」と検索し、右クリックから「管理者として実行」を選択します。
  2. 分割コマンドを実行する
    以下のコマンドを入力して実行します。パスとファイル名は実際のものに置き換えてください。
    Get-Content -Path "C:\path\largefile.csv" -ReadCount 100000 | ForEach-Object { $_ | Out-File -Path "C:\path\split_$([int]($_.Count/100000)).csv" -Encoding utf8 }
    このコマンドは、元のCSVを10万行ごとに分割し、split_0.csv、split_1.csv……というファイルを生成します。
  3. 分割結果を確認する
    出力先のフォルダに分割ファイルが作成されていることを確認します。ファイルサイズがそれぞれ500MB未満になっていれば成功です。

Pythonスクリプトで分割する方法

  1. Pythonをインストールする
    お使いの環境にPythonがインストールされていない場合は、公式サイトからダウンロードしてインストールします。
  2. 分割スクリプトを作成する
    テキストエディタで以下の内容を記述し、split_csv.pyなどの名前で保存します。
    import pandas as pd
    chunk_size = 100000 # 1チャンクあたりの行数
    for i, chunk in enumerate(pd.read_csv('largefile.csv', chunksize=chunk_size)):
    chunk.to_csv(f'split_{i}.csv', index=False)
  3. スクリプトを実行する
    コマンドプロンプトまたはターミナルで保存したフォルダに移動し、python split_csv.pyと入力して実行します。分割ファイルが生成されます。

オンラインツールで手軽に分割する方法

  1. 分割ツールのサイトにアクセスする
    「CSV splitter online」などで検索し、信頼できるサイト(例:csvsplitter.com)を開きます。
  2. CSVファイルをアップロードする
    画面の指示に従って、分割したいCSVファイルをアップロードします。
  3. 分割設定を行う
    1ファイルあたりの行数(例:100000)や出力形式を指定します。多くのツールは分割後のファイルをZIPでまとめてダウンロードできます。
  4. 分割ファイルをダウンロードする
    分割完了後、ZIPファイルをダウンロードして解凍します。

分割したCSVをGoogleスプレッドシートにインポートする手順

  1. Googleスプレッドシートを開く
    ブラウザでGoogleスプレッドシートにアクセスし、新しいスプレッドシートを作成します。
  2. 最初の分割ファイルをインポートする
    メニューから「ファイル」→「インポート」→「アップロード」を選択し、分割ファイルの1つ目をアップロードします。インポート場所は「新しいシートを作成」を選びます。
  3. 残りのファイルも同様にインポートする
    残りの分割ファイルを順次、別のシートとしてインポートします。シート名は後でわかりやすいように「データ1」「データ2」などに変更しておきます。
  4. 必要に応じてデータを結合する
    すべてのデータを1つのシートにまとめたい場合は、QUERY関数やIMPORTRANGE関数を使用します。例えば、以下のような数式で別シートのデータを結合できます。
    =QUERY({データ1!A:Z; データ2!A:Z; データ3!A:Z}, "select * where Col1 is not null")
    この数式は、複数のシートのデータを縦に積み上げて1つの範囲として返します。

ADVERTISEMENT

分割インポートで注意すべきポイント

ヘッダー行の重複に注意する

分割したファイルにはそれぞれヘッダー行が含まれます。そのまま結合するとヘッダーが複数行になってしまいます。分割時にヘッダーを最初のファイルだけに残し、2つ目以降はヘッダーを除いて保存するようにしましょう。PowerShellの例では、最初のファイルだけにヘッダーを含めるよう調整する必要があります。または、結合後にQUERY関数のWHERE句でヘッダー行を除外する方法もあります。

文字コードの違いで文字化けが起きる場合

CSVファイルの文字コードがUTF-8以外(Shift_JISなど)の場合、Googleスプレッドシートで正しく表示されないことがあります。分割前にUTF-8に変換しておくか、インポート時に文字コードを指定できるツールを使います。メモ帳などで開き、「名前を付けて保存」からUTF-8を選んで変換できます。

日付や数値の形式が崩れるケース

分割したCSVをインポートする際、日付の区切り文字や小数点の形式がロケール設定によって変わることがあります。インポート後、数式や書式設定で元の形式に戻す必要が生じる場合があります。事前にスプレッドシートのロケールを「日本」に設定しておくと、日付の解釈が安定します。

CSV分割方法の比較表

方法 必要な環境 処理速度 使いやすさ ヘッダー処理の自動化
PowerShell (Windows) Windows (標準搭載) 速い やや難しい (コマンド入力) 自分で調整が必要
Python (pandas) Python インストールが必要 速い 中程度 (スクリプト作成) コード次第で自動化可能
オンラインツール ブラウザのみ 普通 (アップロード時間次第) 簡単 (GUI操作) ツールによる (多くの場合対応)

まとめ

この記事では、Googleスプレッドシートの500MB制限を回避するために、大容量CSVを分割してインポートする方法を解説しました。PowerShell、Python、あるいはオンラインツールを使えば、ファイルサイズや行数に応じて簡単に分割できます。分割後は通常のインポート機能で各シートに取り込み、QUERY関数で結合することで、巨大なデータもスプレッドシート上で扱えるようになります。ぜひ自分の環境に合った分割方法を選んで、スムーズなデータ管理を実現してください。


ADVERTISEMENT

この記事の監修者
✍️

超解決 第一編集部

疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。