# Convert PDF to Excel Sheet: One Sheet, Not One Per Page

- Author: FastBankConvert (https://fastbankconvert.com)
- Published: 2026-10-16
- Category: Fixing the converted file
- Canonical: https://fastbankconvert.com/blog/convert-pdf-to-excel-sheet

> Convert PDF to Excel sheet by sheet no more: why each page gets its own tab, combining them with VSTACK, fixing shifted columns, and counting rows.
To convert a PDF to an Excel sheet you can use as one table, stack the page sheets with VSTACK. Converters often give each PDF page its own tab, so a formula such as `=VSTACK(Page1!A2:D40, Page2!A2:D40)` joins them into one list, and a row count then confirms nothing went missing.

## Why does each PDF page become its own Excel sheet?

Each PDF page becomes its own Excel sheet because a PDF is a stack of separate pages, and many converters copy that structure one page to one tab. It is usually a deliberate design choice, not a fault in your file. Excel's PDF import can do something similar, listing a table per page when it does not combine them.

A PDF has no concept of a table that continues across pages. To the file, page 2 is a new drawing that happens to show more rows. A converter that reads each page on its own finds one table per page and writes each to a separate sheet. A converter that tries to join them has to guess that the table on page 2 continues the one on page 1, and it can guess wrong.

### What this looks like

After conversion you see tabs named after the pages, such as `Page1`, `Page2`, `Page3` and `Page4`, or `Table001 (Page 1)` in Excel's own import. Each tab holds the rows from its page. A repeated header row often sits at the top of every tab.

That layout is awkward for any work that spans pages. A total over the whole statement needs a formula for each tab. A pivot table cannot read four tabs as one source. A filter works on one tab at a time. The cleanest repair is to build one combined table that reads from the page tabs.

### Check before you merge

Look at the tabs before you write a formula:

- Do all tabs have the same number of columns?
- Does every tab repeat the header row, or only the first?
- Does the last tab end with a total or summary block that is not a transaction?
- Are numbers and dates real values, or text?

Each answer changes the formula. If numbers are text, fix that first; [making converted numbers real, editable values](/blog/pdf-to-excel-editable) takes a few minutes and saves rework after the merge.

## Combining page sheets with VSTACK

VSTACK is an Excel function that stacks ranges on top of one another into a single list. Give it the data range from each page sheet, in page order, and it returns one combined table. It needs a version of Excel with dynamic arrays, such as current Microsoft 365, and it returns a result that spills into the cells below.

### The basic formula

Suppose your tabs are named `Page1` to `Page4`, each with a header in row 1 and data in A2:D60. In a new sheet, in cell A2, enter:

```
=VSTACK(Page1!A2:D60, Page2!A2:D60, Page3!A2:D60, Page4!A2:D60)
```

Put the header text in row 1 of the new sheet by hand, or take it from the first tab with `=Page1!A1:D1`. The result spills down as far as the combined data needs. The formula skips each tab's header because the ranges start at row 2.

### Dropping blank rows

A range that reaches row 60 on a page with only 38 rows returns rows of zeros, because VSTACK shows an empty cell as 0. Remove them by wrapping the stack in FILTER:

```
=LET(all, VSTACK(Page1!A2:D60, Page2!A2:D60, Page3!A2:D60, Page4!A2:D60),
     FILTER(all, INDEX(all,,1)<>0))
```

LET gives the stacked result a name, and FILTER keeps only rows where the first column, the date, is not the 0 that an empty cell becomes. This version holds up when one page is shorter than the others.

### Removing repeated headers

If every tab repeats its header in row 1, starting at row 2 skips it. If a page has two header rows, for instance a title line above the column names, start at the first data row of each tab or filter on the date column. A header row has text where a date should be, so a second filter condition can drop it: add `ISNUMBER(INDEX(all,,1))` to the test once the dates are real dates.

### If you cannot use VSTACK

Older versions of Excel do not have VSTACK. Two other routes give the same result. Copy the data from each tab and paste it below the previous one, which suits a single job. Or append the tables in Power Query, which keeps the result refreshable; the steps are in [appending PDF import tables across pages](/blog/import-pdf-to-excel-with-power-query#appending-pdf-import-tables-across-pages).

### Static values or a live formula

The VSTACK result is live: change a page tab and the combined table updates. That is useful while you correct the pages, and a nuisance when you want a fixed copy to send on. Once the merge is correct, copy the spilled range and paste it as values into a new sheet, then keep or delete the page tabs.

## Mismatched columns between page sheets

Page 3 comes out shifted by one column when the converter finds a different number of columns on that page. A long description that wraps, an empty column on one page, or a page with no balance column changes the grid, and the amounts land one cell to the left or right of where they sit on other pages.

VSTACK does not care. It stacks whatever it is given, so a shifted tab produces rows whose amounts sit in the wrong column. The mistake shows up as dates in the description column, or a column that alternates between numbers and text.

### How to spot it

Compare each tab's column count and header text before you merge:

- Put `=COUNTA(Page3!A1:F1)` in a spare cell to count the non-empty header cells on a tab, and compare the result across tabs.
- Look at the first data row of each tab. The date should be in column A on every page.
- After the merge, filter the amount column for text. Any text in a numeric column is a clue to a shifted row.

### How to fix it

Fix the tab, not the merged result. Remove the stray column on the shifted tab by deleting it, or tell the formula to skip it. DROP removes columns from a range without touching the sheet:

```
=VSTACK(Page1!A2:D60, Page2!A2:D60, DROP(Page3!A2:E60,,1), Page4!A2:D60)
```

Here DROP removes the first column of the five-column Page3 range, leaving four columns that match the others. If the extra column sits at the end, use `DROP(Page3!A2:E60,,-1)`.

If a wrapped description splits across two cells, join them first with `=A2&" "&B2` on that tab, then drop the spare column. When many pages shift, the cleaner answer is to re-run the conversion with a method that reads the whole table at once, or to [transform the data with Power Query cleanup steps](/blog/transform-pdf-to-excel-power-query-cleanup), which handle combined columns more reliably than hand edits.

## Do you ever want one sheet per PDF page?

Yes, in a few cases a sheet per page is the better layout. Keep the pages apart when each page is a different table, when you need to compare pages against the original, or when the pages are separate documents joined in one PDF, such as several accounts printed together.

### When separate sheets help

- **Different tables per page.** A report with a summary on page 1 and a detail table on page 2 should not be stacked. The two do not share columns.
- **Several accounts in one PDF.** A year-end pack that holds three statements for three accounts needs three tables, not one.
- **Proofreading.** While you check a conversion against the PDF, one tab per page makes it easy to compare a page at a time.
- **Page-level totals.** Some documents print a total for each page. Separate tabs keep each total beside its rows.

### When to merge

Merge when the pages continue a single list of rows, as with a statement whose transactions run from page 1 to page 4. Sorting by date, filtering for a payee, summing a column and building a pivot table all need one table. A long statement that stays split across tabs gets in the way of every one of these.

A mixed route is common: proofread on separate tabs, then merge, then delete or hide the page tabs. If your file also has a few very large pages, [converting a large PDF to Excel](/blog/convert-large-pdf-to-excel) has notes on handling long files without slowing the workbook.

## Counting rows after merging page sheets

Count rows after merging to prove no page was dropped or doubled. Add the data rows on each page tab, add the rows in the merged table, and compare. The totals must match. If they do not, the gap points to a wrong range, a header copied into the data, or a blank row filter that removed too much.

### A worked example: the row-count tally

The tally below uses made-up numbers for four page tabs. It shows what a good result looks like, and one that needs checking.

| Source | Data rows (example) | Counted with |
| --- | ---: | --- |
| Page1 | 38 | `=COUNTA(Page1!A2:A60)` |
| Page2 | 40 | `=COUNTA(Page2!A2:A60)` |
| Page3 | 40 | `=COUNTA(Page3!A2:A60)` |
| Page4 | 17 | `=COUNTA(Page4!A2:A60)` |
| **Total across pages** | **135** | `=SUM(B2:B5)` |
| **Rows in merged table** | **135** | `=COUNTA(Merged!A2:A200)` |

The two bold totals agree, so every row came through. If the merged table showed 131 rows, four rows are missing, and the usual causes are below.

### When the counts disagree

- **Merged count too low.** The ranges ended before the last row on a page, or a filter removed rows with a blank first cell. Extend the range or check the filter column.
- **Merged count too high.** A header row slipped into the data, or two ranges overlap. Search the merged table for the header words.
- **Source count wrong.** COUNTA counts any non-empty cell, so a footer such as "Page 2 of 4" in column A is counted as a row. Subtract footers, or count a column such as the amount that only transactions fill.

### Check the money too

A row count proves quantity, not accuracy. Add a second check on the amount column: sum each page, sum the merged table, and compare. For a bank statement, the closing balance is the final test, because opening balance plus all amounts must equal it. If you want that check without building it by hand, FastBankConvert is getting ready to open with a balance check before download, and you can ask to be told at [Get started](/get-started).

Once the counts and totals agree, the combined sheet is ready for the work that needed one table. To recover a workbook that someone saved as a PDF in the first place, see [converting a PDF back to Excel](/blog/convert-pdf-back-to-excel).
