Home › Developer Tools › Pivot Table Maker

Pivot Table Maker

Summarize a spreadsheet in seconds: drop in a CSV or Excel file, then drag fields into Rows, Columns and Values to total, count or average them by any category. Totals, subtotals, percentages and a chart update instantly, and you can export the result to Excel or CSV.

Last updated:

Sample sales data loaded

Fields drag into a box, or click

Filters

Columns

Rows

Values

Advertisement
Advertisement

How to use the Pivot Table Maker

  1. Open your data: drop a CSV or Excel file (first row = column names), or paste cells. A sample sales table is loaded so you can try it first.
  2. Drag a category field into Rows, for example Region or Product.
  3. Drag a number field into Values and choose how to summarize it: Sum, Count, Average, Min, Max or Median.
  4. Optionally add a field to Columns to cross-tabulate (for example Quarter), or to Filters to include only some values.
  5. Export the result with Download Excel or CSV, copy it into a spreadsheet, or save the chart as a PNG.

Which summary function should I use?

FunctionWhat it returns for each groupExample question
SumTotal of the numeric valuesRevenue per region
CountNumber of non-empty cells (records)Number of orders per sales rep
Count uniqueNumber of different valuesHow many different products each region sold
AverageSum ÷ number of numeric valuesAverage order value per quarter
MedianMiddle value after sorting (mean of the two middle values for an even count)Typical deal size when a few huge deals distort the average
Min / MaxSmallest / largest numeric valueEarliest and latest order number, cheapest and priciest sale

Reading the percentages

With Show values as you can turn totals into shares. In a Region × Quarter table of revenue:

  • % of grand total: each cell divided by the overall total, so all cells together add up to 100%. "East in Q1 brought 8.4% of the year's revenue."
  • % of row total: each cell divided by its row's total, so every row adds up to 100%. "28% of East's revenue came in Q1."
  • % of column total: each cell divided by its column's total, so every column adds up to 100%. "East delivered 31% of Q1 revenue."

Tips for good pivot tables

  • One record per row. Pivot tables work on long lists (one sale, response or transaction per row) with one header row. Remove title rows and existing total rows first, or they will be counted as data.
  • Consistent labels. "East", "east" and "East " are three different groups. Clean them with the CSV Cleaner before pivoting.
  • Bring in categories from another file, for example a customer's segment, with the CSV VLOOKUP Tool, then pivot by that field.
  • Keep the Columns field small. A field with a few values (quarters, regions) makes a readable cross-tab; put fields with many values in Rows instead.

Frequently asked questions

What is a pivot table?

A pivot table summarizes a list of records by grouping them. You choose a field for the rows (for example Region), optionally a field for the columns (for example Quarter), and a value to calculate for each group (for example the sum of Revenue). Each cell then shows the total for that combination, so 10,000 order lines become a small, readable table.

How do I make a pivot table without Excel?

Open your CSV or Excel file here, drag a category field into Rows and a number field into Values. The pivot table appears immediately with totals. You can then download it as an .xlsx file that opens in Excel, Google Sheets, Numbers or LibreOffice, or as CSV.

What is the difference between Count and Count unique?

Count is the number of non-empty cells in each group, so a customer with five orders is counted five times. Count unique counts distinct values only, so the same customer is counted once per group. Use Count unique for questions like how many different customers bought in each region.

Why is my number column summed as 0 or counted instead of added?

Values are added only when the cells are numbers. Text such as N/A or a note in a number column is skipped by Sum, Average, Min, Max and Median. Currency symbols, thousands separators like 1,250.00, percent signs and accounting negatives such as (45.00) are understood automatically.

How are subtotals and the grand total calculated?

Subtotals and totals are calculated from the underlying records, not by adding up the rows shown. That means an Average subtotal is the true average of all records in the group, and a Count unique total counts each value once even if it appears in several rows, exactly like Excel's pivot tables.

Does the Excel export contain a real Excel pivot table?

The download is a normal Excel workbook with the summarized table on a Pivot sheet and your source data on a Data sheet. The numbers are real values, so you can chart or format them, but the table is static: to change the layout, rearrange it here and export again, or use Insert > PivotTable on the Data sheet in Excel.

Is my data uploaded?

No. The file is read and summarized by JavaScript in your browser tab. Sales figures, payroll or survey data never leave your computer.

Are all the tools on FreeToolCabin tested for quality and accuracy?

Yes! Every tool on our site undergoes automated Q/A testing in real browser environments to ensure high precision, correct output, and zero errors. If you happen to spot a bug or have a suggestion, please contact us at [email protected] and our team will review it right away.

Related tools

CSV ViewerOpen a CSV or TSV file as a sortable, filterable table.Excel Viewer (XLSX / XLS)Open XLSX, XLS and ODS spreadsheets in your browser without Excel.CSV VLOOKUP ToolJoin two CSV or Excel files on a key column like VLOOKUP, with left, inner and full joins.Chart MakerMake bar, line, area, pie and doughnut charts from a simple table and download PNG or SVG.Cohort Retention Table GeneratorTurn signup and activity data or cohort counts into a cohort retention heatmap and export it.Sum CalculatorPaste any list or column of numbers to get the total, count, average, min and max instantly.QR Code GeneratorMake QR codes for links, Wi-Fi, email and more.Barcode GeneratorCreate Code 128, EAN-13, UPC-A, EAN-8, Code 39 and ITF-14 barcodes as PNG or SVG.UUID GeneratorGenerate UUID v4 and v7 / GUIDs in bulk and copy or download them.Schema Markup Generator (JSON-LD)Create JSON-LD structured data for FAQ, Product, Article and more.Htaccess & Nginx Redirect GeneratorBuild 301 redirects for .htaccess, Nginx and Netlify or Cloudflare _redirects.Fake Data GeneratorGenerate mock data as JSON, CSV or SQL.Random String GeneratorGenerate secure random strings and tokens in bulk with any length and character set.API Key GeneratorCreate secure API keys and secrets with prefixes, checksums and SHA-256 hashes for storage.MIME Type LookupFind the MIME type for any file extension, or the extensions for a MIME type, in 400+ entries.Cron Expression GeneratorBuild crontab schedules visually, read them in plain English and see the next run times.URL Slug GeneratorTurn titles into clean, SEO-friendly URL slugs: accents, stop words, separators and bulk lines.JSON Schema GeneratorTurn sample JSON into a draft 2020-12 JSON Schema with types, required fields and formats.Gitignore GeneratorBuild a .gitignore from 50+ templates for languages, frameworks, IDEs and OS, merged and deduped.License GeneratorCreate a LICENSE file for MIT, Apache, GPL, BSD, ISC, MPL or Unlicense with your name and year.ULID GeneratorGenerate sortable ULIDs and UUID v7 in bulk, monotonic option, and decode their timestamps.Htpasswd GeneratorCreate .htpasswd entries with bcrypt, APR1-MD5 or SHA-1 for Apache and Nginx basic auth.Placeholder Image GeneratorCreate placeholder images in any size, color and text as PNG, JPG, WebP, SVG or data URI.Ads.txt GeneratorCreate or validate ads.txt and app-ads.txt files: seller lines, cert IDs and variables.Docker Run to Compose ConverterConvert docker run commands to docker-compose.yml, or a compose file back to docker run.Dockerfile GeneratorGenerate a production Dockerfile and .dockerignore for Node, Python, Go or a static nginx site.HTML Boilerplate GeneratorTick the options you need and get a clean HTML5 starter template with meta, OG tags and CSS reset.JSON to Zod SchemaInfer a Zod (or Yup) schema from sample JSON with optional, nullable and z.infer types.Linux Commands Cheat SheetSearchable Linux and bash command reference with flags explained, examples and copy buttons.LLMs.txt GeneratorBuild an llms.txt file for AI crawlers: summary and link sections, import from your sitemap.Nano ID GeneratorGenerate secure Nano IDs with custom alphabet, length and count, plus a collision calculator.Nginx Config GeneratorBuild an nginx server block: static site, SPA, reverse proxy or PHP, with SSL, gzip and redirects.OpenAPI / Swagger ViewerView OpenAPI 2/3 JSON or YAML as interactive API docs with validation and an endpoint list.package.json GeneratorFill a form and get a valid, npm-ready package.json with scripts, dependencies and checks.PKCE Code Challenge GeneratorGenerate an OAuth 2.0 PKCE code_verifier and S256 code_challenge, build auth URLs, verify pairs.README GeneratorFill in a form and get a polished README.md with badges, install, usage and license, live preview.Regex GeneratorBuild regular expressions visually from blocks or presets (email, date, phone) and test them live.Commit Message GeneratorBuild Conventional Commit messages with type, scope, body, breaking change and issue refs.cURL Command BuilderBuild curl commands from a form: method, headers, query, JSON or form body, auth and flags.Docker Compose to KubernetesConvert docker-compose.yml into Kubernetes Deployment, Service, ConfigMap and PVC manifests.Docker Compose ValidatorCheck a docker-compose.yml for YAML errors, schema mistakes, broken references and deprecated keys.Dockerfile LinterLint a Dockerfile for best practices: pinned tags, apt cleanup, non-root USER and layer count.Dockerignore GeneratorBuild a .dockerignore from Node, Python, Go and Java templates, plus your own entries.ESLint Config GeneratorGenerate a flat eslint.config.js for JavaScript, TypeScript, React or Node with rule presets.Git Branch Name GeneratorTurn a ticket ID and title into a clean, valid git branch name like feature/PROJ-12-add-login.GitLab CI Config GeneratorGenerate a .gitlab-ci.yml with stages, jobs, images, cache, artifacts and rules from templates.Jinja2 Template TesterRender Jinja2 templates with YAML or JSON variables using real Jinja2, with clear error lines.JSON Schema Mock Data GeneratorGenerate realistic sample JSON from a JSON Schema: formats, patterns, $ref, seeds and counts.Kubernetes Secret GeneratorCreate Kubernetes Secret YAML from key/value pairs or .env with auto base64, or decode one.Kubernetes YAML ValidatorValidate Kubernetes manifests against the API schema of a chosen version, with error paths.Prettier Config GeneratorToggle Prettier options, preview formatted code live and copy your .prettierrc file.Quartz Cron GeneratorBuild and explain Quartz and Spring cron expressions with seconds, ?, L, W and #, plus next fire times.README Badge GeneratorCreate Shields.io-style README badges for license, version, build and custom labels.Systemd Service File GeneratorCreate a systemd .service unit with ExecStart, user, restart policy, environment and hardening.tsconfig.json GeneratorBuild a tsconfig.json with target, module, strict checks and path aliases, each option explained.Access Log AnalyzerAnalyze Apache and Nginx access logs: top URLs, IPs, status codes, bots and traffic charts.Regex String GeneratorGenerate random test strings that match any regular expression, checked against the real regex.ASCII Table GeneratorTurn CSV or pasted cells into plain-text tables: MySQL, Markdown, Unicode box and reST styles.Database Schema DesignerDesign tables and relationships visually, then export SQL for MySQL, PostgreSQL or SQLite.Docker Compose GeneratorBuild a docker-compose.yml with a form: services, ports, volumes, env, healthchecks and presets.Dummy File GeneratorCreate test files of an exact size in KB, MB or GB with zeros, random bytes or text.FFmpeg Command GeneratorPick a task and options, get the exact ffmpeg command with every flag explained.Folder Tree GeneratorTurn a local folder or an indented list into an ASCII directory tree for your README.GitHub Actions Workflow GeneratorBuild a GitHub Actions CI workflow: triggers, matrix, caching, tests, Pages or Docker deploy.Kubernetes YAML GeneratorGenerate Deployment, Service, Ingress, ConfigMap, Secret and HPA manifests with safe defaults.Markdown TOC GeneratorGenerate a linked table of contents from Markdown headings with GitHub-style anchors.OpenAPI EditorEdit OpenAPI/Swagger YAML or JSON side by side with live API docs, validation and download.OpenAPI ValidatorValidate OpenAPI 3.0/3.1 and Swagger 2.0 specs: schema errors, broken $refs, line numbers.
See all 85 Code Generators & Builders →