CSV Pivot Table Builder

Build pivot tables from a CSV — rows, columns, values, aggregation

Paste CSV data and pick a row field, column field, value field, and aggregation (sum, count, average, min, or max) to generate a pivot grid with row and column totals. Parses quoted CSV correctly and runs entirely in your browser. It runs free in your browser on Gera Tools, with nothing uploaded.

Last updated Source: Gera Tools

What aggregations are supported?

Sum, count, average, minimum, and maximum. Sum, average, min, and max parse the value field as numbers and ignore non-numeric cells, while count tallies how many rows fall into each cell regardless of the value.

CSV Pivot Table Builder summarises tabular data the way a spreadsheet pivot table does, but instantly and in your browser. Paste CSV with a header row, choose which field forms the rows, which forms the columns, and which numeric field to aggregate — then pick how to aggregate it. The result is a cross-tabulated grid with totals, no spreadsheet software required.

How it works

First the CSV is parsed into records. The parser is quote-aware: it tracks whether it is inside a double-quoted field, so embedded commas and newlines stay part of their cell, and a doubled quote ("") becomes a literal quote.

Then the pivot is computed. Every record is placed into a cell identified by its row-key value and column-key value. Within each cell the chosen aggregation runs:

  • count — number of records in the cell.
  • sum — total of the value field, skipping non-numeric cells.
  • avg — sum divided by the number of numeric values.
  • min / max — smallest or largest numeric value.

Finally, row totals (across all columns) and column totals (down all rows) are added so you can read marginal subtotals at a glance.

Tips and worked example

Using the bundled sales sample: set the row field to region, the column field to product, the value field to amount, and the aggregation to sum to see revenue per region per product with totals. For example:

Widget AWidget BTotal
North12008002000
South95011002050
Total215019004050

Switch the aggregation to count to see how many orders fell into each cell. Set the column field to (none) for a simple grouped summary with one aggregated column.

When to use each aggregation

AggregationBest for
sumRevenue, quantities, costs — anything you add up
countNumber of events, orders, or records per cell
avgAverage ticket size, rating, or delivery time per segment
min / maxFastest / slowest time, cheapest / priciest item per group

Practical use cases

  • Sales reporting — revenue by region × product, or by sales rep × month.
  • Survey analysis — count of responses by answer choice × demographic group.
  • Support tickets — average resolution time by category × team.
  • Inventory — total stock by warehouse × SKU.
  • Event analysis — unique visits (count) by campaign × landing page.

Limitations

The pivot table built here is a cross-tabulation of two categorical fields. It does not support nested row groupings (region → country), date hierarchies (year → quarter → month), or calculated fields beyond the five built-in aggregations. For those, export the CSV and open it in a spreadsheet or pass it to a data analysis tool. Everything runs locally — nothing is uploaded.