Two Sheets, One Truth: Separating Supplier Details from Invoice Line Items in Excel
A common reason invoice spreadsheets fail is structural rather than formula-related. When a supplier invoice is flattened into a single sheet, the supplier name, invoice number, invoice date, currency and header totals are copied onto every line-item row. The file looks complete, but it no longer distinguishes between two different things: the document and the goods or services listed on it. The alternative is deliberately unglamorous. Keep one worksheet where each row is a supplier invoice, keep a second where each row is an invoice line, and connect them with a stable document key. This article describes that layout as an editorial design pattern for reviewed Skavio Flow exports — a workbook built for human checking, not a substitute for an accounting system.
Why a flat invoice sheet stops being readable
Repetition is the first symptom. If a supplier invoice has fourteen lines, the invoice total appears fourteen times. Any sum taken over that column without careful scoping is wrong, and a pivot table on supplier name will count the same document as many times as it has rows. The second symptom is drift: someone corrects the supplier name on one row and leaves the other thirteen untouched, so the file now contains two versions of the same fact. The third symptom is interpretive. A reviewer who sees a header total sitting in the same column as unit prices cannot tell whether a mismatch is a genuine data problem or an artefact of how the sheet was assembled. Separating the document from its lines removes that ambiguity before the review even starts.
- Header values repeated on every line inflate any total that is not explicitly scoped.
- Row-level edits to supplier or invoice fields leave the remaining rows stale.
- Sorting by amount mixes document totals with individual item prices.
- Pivot tables over a flat sheet count documents once per line.
- A reviewer cannot distinguish a real discrepancy from a layout artefact.
One document record, many line records
The layout has two tables. The document table holds exactly one row per supplier invoice: supplier identity, supplier reference, invoice number, invoice date, due date, currency, the net, tax and gross figures as printed, and the review state of the document. The line-item table holds one row per line: a reference back to the document, a line position, a description, quantity, unit, unit price, tax label and the line amount as printed. The key that joins them should not be the supplier's invoice number. Suppliers reuse numbering conventions, numbers collide across vendors, and the same document may reappear in a later intake. Use an internal, run-scoped document identifier stored as plain text, and keep the supplier's invoice number as an ordinary attribute. Worksheet names are a design decision on your side; treat them as your convention rather than an assumed product default.
- Document table: internal document key, supplier name, supplier identifier, invoice number, invoice date, due date, currency, printed totals, page count, review status.
- Line table: internal document key, line position, description, quantity, unit, unit price, line net, tax label, printed line total.
- Keep printed source values in their own columns and place any derived check in a separate column rather than overwriting the original.
- Never store the join key with locale-specific formatting applied.
Joining the two tables without quietly duplicating them
A lookup column on the line table, or a merge in Power Query, is enough to bring supplier details next to the rows a colleague needs. The failure mode is rarely the lookup function itself; it is the data types either side of it. Invoice numbers with leading zeros, account references stored as text, decimal separators that differ between a German and an English supplier, and dates that Excel guesses at will all break a join that looks correct on screen. Keep the key as trimmed text in both tables. Keep currency as a separate three-letter code next to the amount rather than embedded in a formatted cell. Keep quantity and unit in separate columns so that a reviewer can see whether 2 means two pallets or two hours. These are small decisions, but they determine whether the workbook survives a second month of use.
- Store join keys as text and confirm no values were silently converted to numbers or dates.
- Keep amounts as numbers and currency as an adjacent text code.
- Split quantity and unit so units of measure stay auditable.
- Check that a lookup returns one match per line row before trusting any downstream total.
- Do not let Excel apply a regional decimal or date format to imported source values.
Review status and source evidence belong in the workbook
A two-table layout is only reviewable if the review itself is visible. Skavio Flow documents source evidence and review warnings among its outputs, and those belong in the workbook rather than in a separate note. In your workbook, each document row can carry a review state and a reviewer, and each line can carry its own flag where a description, quantity or amount needed attention. Source references make a disagreement resolvable. If a line total looks wrong, the reviewer should be able to move from the cell back to the source document or page it came from without reopening the whole batch, where the export provides that detail. The discipline is the same throughout: record exceptions instead of hiding them, never overwrite a printed value with a guessed correction, and do not delete a warning to make the sheet look finished.
- Add a document-level review status and a reviewer field with a timestamp.
- Add a line-level flag for rows that needed a human decision.
- Carry a source reference at the level the export provides it.
- Keep review warnings as text columns rather than resolving them silently.
- An unresolved exception should remain visible in the export, not be dropped before handoff.
Where Skavio Flow fits, and where it stops
Skavio Flow turns invoices, orders, scans and text into reviewed XLSX, CSV and JSON using custom fields and saved company workflows. Its documented outputs include XLSX document and line-item worksheets, CSV, JSON, source evidence and review warnings — which is precisely the raw material for the layout described above. Embedded PDF text is read locally, scanned pages go through Worker Fabric OCR, and structured extraction uses the configured OpenAI model. Custom fields and saved workflows help keep field naming consistent across recurring supplier formats. Skavio Flow should not be treated as an ERP connector, an approval engine or an automatic posting mechanism, and this workbook pattern does not make it one. Dates, totals and line items still require human checking, and the workflow is review-first by design. An internal acceptance check dated 2026-10-01 extracted and exported two synthetic PDF invoices, and a scalar correction regenerated the results without starting a second job. That is a recorded check of one workflow on synthetic files, not a general promise about how every correction behaves.
- Outputs: XLSX document and line-item worksheets, CSV, JSON, source evidence and review warnings.
- Processing path: local embedded-text reading, OCR for scans, configured model for structured extraction.
- Reusable custom fields and saved company workflows support consistent naming.
- Not supported by this workflow: automatic ERP posting, automatic reconciliation or silent validation of supplier details.
- The 2026-10-01 check used two synthetic invoices and should be read as a scoped acceptance test, not a benchmark.
Open Skavio Flow and structure a reviewed invoice workbook →