Add Percent of Total to CSV Files Online
Add a percentage-of-total column to CSV files directly in your browser. Show each row's share of the grand total, or the share within each group — no upload required.
How to add Percent of Total to CSV files
- Drop your file onto the upload area. The first numeric column is pre-selected as the Value column.
- Choose the Value column. Only numeric columns are listed.
- Optionally choose a Group by column. With (none) each row is a share of the grand total. With a group, each row is a share of its group total and the output name switches to pct_of_group.
- Set Decimal places (default 2, up to 10) and edit the Output column name if you want a different name.
- Click Add % Column, check the preview, then download the file with the new column appended.
Your file is processed locally in your browser and is never uploaded. The free limit is 50 MB per file; larger files work if your device has the memory for them.
Worked example
A council finance officer has budget lines for two departments and wants each line as a share of its own department's budget. One line has not been costed yet.
Input (CSV)
department,line_item,amount
Parks,Mowing contracts,48000
Parks,Playground repairs,12000
Parks,Tree planting,20000
Libraries,E-book licences,30000
Libraries,Late-night opening,
Libraries,Children's programmes,15000Settings
- Value column: amount
- Group by: department
- Decimal places: 2
- Output column name: pct_of_group
Result
| department | line_item | amount | pct_of_group |
|---|---|---|---|
| Parks | Mowing contracts | 48000 | 60 |
| Parks | Playground repairs | 12000 | 15 |
| Parks | Tree planting | 20000 | 25 |
| Libraries | E-book licences | 30000 | 66.67 |
| Libraries | Late-night opening | NULL | NULL |
| Libraries | Children's programmes | 15000 | 33.33 |
Parks totals 80,000, so mowing is 48,000 / 80,000 = 60%. Libraries totals 45,000 because the empty amount is ignored in the sum. That line gets NULL rather than 0, and the other two Libraries lines still add up to 100. Without a Group by column, every line would be divided by the combined 125,000 instead, so mowing would be 38.4.
Working with CSV files
The Value column list only shows columns the engine read as numbers. In a CSV that means every non-empty value in the column must parse as a number. Amounts written as "12,000" with a thousands separator, or with a currency sign, make the whole column text and it disappears from the list. Remove the separators with Find & Replace and cast the column, then try again. A column of whole numbers loads as an integer type, but the percentages still come out with decimals, because the division always returns a decimal result.
Blank cells load as NULL. They are left out of the total and get an empty percentage in the output, so the remaining rows still sum to 100 before rounding. The new column is appended as the last field on every line. Values are written as plain decimals, such as 66.67, without a % sign, so a spreadsheet or BI tool that opens the CSV treats them as numbers you can sum or chart.
Frequently Asked Questions
Why is my amount column not in the Value column list for this CSV?
It was read as text, usually because of thousands separators, currency symbols or words like "TBC" in some rows. Clean those values and cast the column to a number first.
Does the CSV output include a % sign?
No. The column holds numbers such as 25 or 66.67, so it stays numeric in other tools. Add a % sign in your report layer if you need one.
Do the percentages always add up to exactly 100?
Before rounding, the non-NULL rows in each group add up to 100. After rounding to your chosen decimal places, the total can be off by a small amount, such as 99.99 or 100.01. Increase Decimal places if that matters.
What happens with negative values or a zero total?
Negative values produce negative shares, and other rows can then go above 100. When a group totals exactly zero, every row in it gets NULL instead of an error.
Can I use a text column as the value?
No. Only numeric columns are listed. Convert the column with Cast Columns first if it holds numbers stored as text.
Related Tools
Sort CSV Files Online
Sort CSV files by any column, ascending or descending, directly in your browser.
Round Numbers in CSV Files Online
Round numeric columns in CSV files to any number of decimal places directly in your browser. Set precision per column with a simple slider — no upload required.
Add Cumulative Sum to CSV Files Online
Add a running total column to CSV files for any numeric column. Optionally order by a date or sequence column and restart totals per group — no upload required.
Add Percent of Total to Excel Files Online
Add a percentage-of-total column to Excel files directly in your browser. Show each row's share of the grand total, or the share within each group — no upload required.
Add Percent of Total to Parquet Files Online
Add a percentage-of-total column to Parquet files directly in your browser. Show each row's share of the grand total, or the share within each group — no upload required.
Add Percent of Total to JSON Files Online
Add a percentage-of-total column to JSON files directly in your browser. Show each row's share of the grand total, or the share within each group — no upload required.
CSV Viewer Online
View and inspect CSV files directly in your browser. Browse rows, check column names and data types — no upload required, your data stays on your device.
Convert CSV to Parquet Online
Convert CSV files to Parquet format directly in your browser. No upload required — your data never leaves your device.