CSVをカテゴリ別に合計する方法|SQL不要・ブラウザだけで完結
手元のCSVファイルで「部門ごとの売上合計」や「商品カテゴリ別の注文数」を出したい。やりたいことはシンプルなのに、検索すると出てくるのはpandasのgroupby解説やSQLのGROUP BY入門ばかり——環境構築の段階で手が止まった経験はないでしょうか。
この操作は「グループ集計(Group By + Sum)」と呼ばれます。1万行の売上CSVがあるとして、各行に「部門」と「売上金額」の列があれば、部門ごとにまとめて売上を合計する。1万行が5行になる。それだけの処理です。
SQLもPythonも不要で、ブラウザだけで同じ結果を得る方法が3つあります。
注記: 第三者ツールの仕様は執筆時点(2026年3月)の情報です。最新の制限や機能は各ツールの公式サイトで確認してください。
| 方法 | 手軽さ | 複数列グループ化 | グラフ | データの扱い | エクスポート |
|---|---|---|---|---|---|
| LeapRows Analyze(※筆者開発) | ★ 簡単 | 対応 | 対応 | ブラウザ内処理(送信なし) | CSV, Excel, Parquet |
| Googleスプレッドシート | ★★ やや手間 | 対応 | 対応 | Googleサーバーに送信 | CSV, Excel |
| DataConverter.io | ★ 簡単 | 対応 | 非対応 | サーバーに送信 | CSV |
LeapRowsでCSVをカテゴリ別に集計する(アカウント不要・ブラウザ完結)
ブラウザ上で完結するツールを使えば、ファイルをドラッグ&ドロップするだけでカテゴリ別の合計が出ます。アカウント作成もインストールも不要です。
LeapRows(※筆者開発ツール)は、DuckDB-WASMを使ってCSVをブラウザ内で処理します。データはサーバーに送信されません。
手順: 売上CSVを部門別に集計する
| ステップ | 操作 | 設定内容 |
|---|---|---|
| 1 | ファイルアップロード | LeapRowsにCSVをドラッグ&ドロップ |
| 2 | タブ切替 | 上部の「Analyze」タブを開く |
| 3 | 集計軸設定 | 「Rows」に集計列を設定(例: 部門) |
| 4 | 数値列設定 | 「Values」に数値列を設定し、「Sum」選択(例: 売上金額) |
| 5 | 結果表示 | カテゴリ別合計がすぐに表示(CSVやExcelでエクスポート可) |
5クリックで完了します。
2軸でのクロス集計もできます。「Rows」に「部門」と「四半期」の2列を設定すれば、部門×四半期の売上が一覧で表示されます。集計方法はSum以外にCount(件数)、Average(平均)、Min、Maxにワンクリックで切り替え可能です。
業務データや顧客情報など機密性の高いCSVを扱う場合、データがサーバーに送信されないブラウザ完結型のツールは安全面で有利です。社内のセキュリティポリシーで外部サービスへのデータ送信が制限されている場合にも使えます。
Googleスプレッドシートのピボットテーブルで集計する
Googleアカウントがあれば、Googleスプレッドシートのピボットテーブル機能でCSVのグループ集計ができます。普段からGoogleのサービスを使っている人にはもっとも馴染みのある方法です。
手順:
- Googleスプレッドシートを開き、「ファイル」→「インポート」→「アップロード」からCSVを選択する
- データ範囲を選択して「挿入」→「ピボットテーブル」→「新しいシート」を選ぶ
- 右パネルの「行」にグループ化する列(例: 部門)、「値」に集計対象の列(例: 売上金額)を追加する(デフォルトでSUMが選択される)
ピボットテーブルエディタの「候補」セクションにデータに基づいた集計パターンが自動で提案されます。ピボットテーブルが初めてなら、候補から選ぶのが手軽です。
注意すべき点:
- 行数制限。 CSVの読み込みは問題ないものの、ピボットテーブルの操作は10万行前後から重くなります。シート全体の上限は約1,000万セル——50列のCSVなら20万行で上限に達します。
- データの送信。 CSVはGoogleドライブにアップロードされます。個人的なプロジェクトなら問題ありませんが、顧客データや社内の機密情報を含む場合は注意が必要です。
- 区切り文字。 セミコロン区切りのCSV(ヨーロッパ圏のシステムからのエクスポートなど)は、インポート時に区切り文字を手動で指定しないと1列にまとまってしまいます。
エクスポート: ピボット結果のシートを表示した状態で「ファイル」→「ダウンロード」→「カンマ区切り形式(.csv)」を選べば、集計結果をCSVとして保存できます。
DataConverter.ioでシンプルに集計する
DataConverter.ioは、グループ集計に特化したシンプルなオンラインツールです。ピボットテーブルの設定やグラフ機能はなく、グループ化→集計→ダウンロードだけに絞り込まれています。
手順:
- DataConverter.ioのGroup Fieldsツールにアクセスする
- CSVデータを貼り付けるか、ファイルをアップロードする
- グループ化する列を選択する
- 集計関数を選ぶ——Sum、Count、Average、Min、Max
- 結果をCSVとしてダウンロードする
「部門別の売上合計だけ出せればいい」という場合、1分かからず完了します。
知っておくべきトレードオフ:
- クロス集計(行と列の2軸)には対応していません。フラットなグループ集計のみです。
- グラフや可視化機能はありません。
- データはサーバーに送信されます。機密データでの利用は避けたほうが安全です。
- 単発の集計タスクに向いています。繰り返し使う場合や大きなファイルを扱う場合は、ブラウザ完結型のツールのほうが柔軟です。
単純な合計の先へ——列を加工してから集計するとインサイトが見える
グループ集計は、CSVに「ちょうどいい分類列」がすでにある場合にそのまま使えます。ただ、実際のデータはそう都合よくできていないことが多いものです。
「URLをディレクトリ単位で集計したい」「日付を月ごとにまとめたい」と思った瞬間、元のCSVにはその粒度の列がないことに気づきます。解決策は、新しい列を追加して元データを加工し、その列でグループ集計することです。
URLをディレクトリ単位で集計する
Webアクセスログに URL 列があり、値は /blog/2024/seo-tips、/blog/2025/csv-guide、/products/pricing のように細かいパスです。URL単位でグループ化しても1ページ1行になるだけで、全体像が見えません。
やることは、URLの先頭ディレクトリ(/blog/、/products/ など)を抽出する列を追加し、その列でグループ化してページビューをSumする。LeapRows(※筆者開発ツール)では「Add Column」機能で文字列の部分抽出ができます。
数百行が数行に集約され、「ブログと製品ページのどちらがトラフィックを稼いでいるか」が一目でわかります。データの羅列ではなく、判断材料になる集計表です。
日付を月や四半期にまとめて集計する
売上CSVの日付が 2024-01-15、2024-01-22、2024-02-03 と日単位で記録されている場合、そのままグループ化すると日別の合計になります。数百行の日別データでは傾向が読めません。
年月(2024-01)や四半期を抽出する列を追加し、その列でグループ化してSumすれば、月次推移や四半期比較が見えるようになります。季節性の発見、前月比の変化、成長トレンドの確認——ここまで来て初めて「集計」が「分析」になります。
数値を範囲(バケット)に分けて集計する
注文金額が500円から5万円まで散らばっているCSVで、金額そのままグループ化しても意味のある結果にはなりません。
「0〜5,000円」「5,001〜10,000円」「10,001〜20,000円」「20,001円以上」のようなバケットを作る列を追加し、その列でグループ化して件数をCountしたり、売上をSumしたりします。売上の分布——少数の高額注文が売上の大半を占めるのか、小口注文の積み上げなのか——が数字で見えます。
共通するパターン
3つの例に共通するのは、加工 → グループ化 → 集計 という流れです。インサイトを生むのは加工のステップであり、グループ集計はその結果を数値にするエンジンです。
LeapRows(※筆者開発ツール)やGoogleスプレッドシートなど、ほとんどのブラウザ集計ツールは列の追加や数式変換に対応しています。ツールごとに操作は異なりますが、「集計軸がなければ自分で作る」という考え方は共通です。
CSV集計でよくある失敗とその対処法
CSVのグループ集計で初めてつまずきやすいポイントをまとめます。
| 問題 | 原因 | 対処法 | 予防 |
|---|---|---|---|
| 数値にテキスト混在 | 通貨記号・「N/A」・空文字 | 集計前にデータ型確認 | インポート時の自動検出確認 |
| 区切り文字が違う | セミコロン区切り・カンマ小数点 | インポート時に区切り文字指定 | ヨーロッパ圏ツールは確認必須 |
| ヘッダー重複 | 複数CSVをファイル途中で結合 | 結合前に重複除去 or マルチファイル対応ツール使用 | 定期エクスポート時に注意 |
| 文字化け | UTF-8以外のエンコーディング | 正しいエンコーディング指定で再インポート | 出力ツールのエンコード確認 |
検証方法: SQLやPythonでクロスチェックできない場合、元のCSVを1カテゴリでフィルタして手計算で合計し、ツールの出力と比較するのが確実です。「部門=マーケティング」の行だけ抜き出してSumを取り、ツールの結果と一致すれば集計ロジックは正しく動いています。
まとめ
3つの方法で、CSVのカテゴリ別合計がコーディング不要で得られます。
- LeapRows(※筆者開発ツール)はブラウザ内で処理が完結し、データが外部に送信されません。機密データや複数列の集計に向いています。
- GoogleスプレッドシートはGoogleアカウントがあれば馴染みやすい選択肢ですが、大きなファイルでは動作が重くなります。
- DataConverter.ioは単発のグループ集計を最短で済ませたい場合に便利です。
単純な合計で済まない場合は、列を加工して集計軸を自分で作ってみてください。URLをディレクトリ別に、日付を月別に、金額を価格帯別に——加工してからグループ集計すると、CSVの数字がビジネス上の判断材料に変わります。