Add Subtotals to a Spreadsheet by Group

A flat export tells you what happened but not how it adds up. Blockform takes rows you paste in, sorts them into blocks by whichever column you choose, and writes a subtotal line under each block. You pick which numeric columns get totalled, whether the header row repeats above every block, and whether a grand total closes the sheet. The result downloads as a styled .xlsx. Nothing is uploaded anywhere - the whole thing runs inside this browser tab.

1

Paste

Lines: 0

4

Download

Grouping Is Not Sorting

Sorting puts matching rows next to each other and stops there; you still have to work out where one group ends and the next begins. Grouping adds structure: Blockform inserts a divider row at every boundary and a labelled subtotal beneath each block, so the shape of the data is visible rather than something you reconstruct by eye. The underlying rows are untouched and stay in their original order within each group.

Which Columns Get Totalled

Blockform reads each column and decides whether it holds numbers or text. Numeric columns are offered as totals and every one of them is selected by default; text columns are not, because summing a list of names is meaningless. You can change any of it. A column of ID numbers or postcodes is technically numeric and almost never worth totalling, so clear those before downloading.

Repeated Headers and Why They Matter

On a sheet longer than a screen, a single header row at the top stops helping after the first scroll. Turning on repeated headers writes the header above every group, so each block reads on its own - which matters most when the sheet is printed or sent to somebody who will read one section and ignore the rest. It is on by default and can be turned off for a more compact file.

The Grand Total, and When to Leave It Off

A grand total closes the sheet with a sum across every group, using the same columns as the subtotals. It is right for a figure that genuinely aggregates - revenue, hours, units. It is wrong, and quietly misleading, for anything already averaged or rated per unit, because adding percentages or unit prices produces a number that looks authoritative and means nothing. Turn it off for those.

Questions

Do I need to sort my data before pasting it in?

No. Blockform gathers matching rows into groups itself, whatever order they arrive in.

Can I group by more than one column?

Not at present - grouping uses a single column. If you need a combined grouping, add a column to your source data that joins the two values, then group by that.

What happens to rows where the group column is empty?

They are gathered into their own block, so nothing is silently dropped from the totals.

Is my data uploaded to a server?

No. Parsing, grouping, totalling and writing the .xlsx all happen in your browser. Nothing is transmitted.

Other ways to use Blockform

CSV to Excel report

Paste a CSV or TSV export and download a formatted .xlsx with grouped blocks, subtotals and repeated headers - no formulas, no pivot table, no sign-up.

Sales by rep

Paste a sales export, group it by rep, territory or product, and download an .xlsx with a subtotal under each block and a grand total. Free, in your browser.

Expenses by category

Paste a bank or card export, group it by category, and download an .xlsx with a subtotal per category and a grand total. Nothing leaves your browser.