SmartQueryTools

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.

How to add Percent of Total to Excel files

  1. Drop your file onto the upload area. The first numeric column is pre-selected as the Value column.
  2. Choose the Value column. Only numeric columns are listed.
  3. 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.
  4. Set Decimal places (default 2, up to 10) and edit the Output column name if you want a different name.
  5. 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 (Excel)

Excel workbook, first sheet (Sheet1)

departmentline_itemamount
ParksMowing contracts48000
ParksPlayground repairs12000
ParksTree planting20000
LibrariesE-book licences30000
LibrariesLate-night openingNULL
LibrariesChildren's programmes15000

Settings

  • Value column: amount
  • Group by: department
  • Decimal places: 2
  • Output column name: pct_of_group

Result

departmentline_itemamountpct_of_group
ParksMowing contracts4800060
ParksPlayground repairs1200015
ParksTree planting2000025
LibrariesE-book licences3000066.67
LibrariesLate-night openingNULLNULL
LibrariesChildren's programmes1500033.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 Excel files

The tool reads the first sheet and uses the values Excel displays. Cells formatted as currency or accounting, such as "$48,000.00", arrive as text and the column will not be offered as a Value column. Change the format to General or Number before exporting from Excel. Cells that already show percentages, like "12.5%", also load as text rather than 0.125. If you cannot change the workbook, strip the symbols with Find & Replace and convert the column with Cast Column Types before running this tool.

Total rows at the bottom of a sheet are a common problem. A SUM row inside the data is counted as another value, which doubles the grand total and halves every percentage. Delete subtotal and total rows before you run the tool. The download is a new .xlsx on Sheet1 with the percentage as a plain number, for example 60 for sixty percent. Apply a number format in Excel if you want it displayed differently.

Frequently Asked Questions

Why are all my Excel percentages half what I expected?

The sheet probably contains a total row, so the grand total includes the sum twice. Remove total and subtotal rows before running the tool.

Will the output show as a percentage in Excel?

It is written as a number such as 60, not 0.6 with percent formatting. Divide by 100 and apply the Percent format in Excel if you want Excel's % display.

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