Coupler.io Blog

How to Combine Data from Multiple Google Sheets Into One 2026 Tutorial

Do you have a Google spreadsheet with structurally identical sheets and need to combine data from them? Merging is usually step one, before you analyze or report on the combined view.

You can merge sheets with FILTER or QUERY formulas, or set up a no-formula merge with Coupler.io that refreshes on a schedule. On top of that, Claude in Google Sheets merges tabs for you and analyzes the result.

Check out our video tutorial on the Coupler.io Academy YouTube channel.

Merge Google Sheets fast and without any formulas

To combine sheets automatically on a schedule, or just to avoid formulas in Google Sheets to link to another sheet, use Coupler.io, a data integration platform and AI analytics solution. With Coupler.io, you can pull a data range from multiple sheets or merge them all together in a few minutes, with no formulas. You can also describe what you need in the Coupler.io AI Agent chat and let it set up the data flow for you. The walkthrough below shows the manual path, which is still worth reading if you want to understand what each step does and troubleshoot later. Here’s how you can do this step by step:

The order of the sheets specified doesn’t influence the order of the merged data. If you need to merge data in a specific order (for example, first Products 2020, then Products 2021, and Products 2022), make sure to arrange the sheets in your spreadsheet in this order.

Then, you can automate reporting on schedule by turning on the Automatic data refresh. Specify an update interval from every month to daily and even every 15 minutes (that will make your report near real-time).

Finally, save and run the data flow. Here’s what you’ll get:

The merged data includes a Sheet Name column, so you can see which sheet each row came from.

Google Sheets to Google Sheets is not the only integration provided by Coupler.io. You can also import data from CSV files, Excel files, and numerous apps.

Merge sheets with a patterned name

Imagine that you need to add more sheets in the future to merge data from and their names have the same pattern. Coupler.io enables you to use a pattern, regular expression, instead of manually selecting the sheet name from a list. This means new sheets matching your pattern will be imported automatically.

For example, your sheets with product items for the next 10 years are named as Products 2025, Products 2026, Products 2027, etc. Instead of typing in all of them one by one, use the {sheet-name}.+ pattern:

In our case, it will look as follows:
Products 20.+

You can use the regular expressions for other cases. Here are the most common ones:

Match all sheets:

Match sheets by year:

Match sheets by name prefix (starts with):

Match sheets by name content (contains):

Match sheets by name suffix (ends with):

How to combine data from multiple sheets in Google Sheets with formulas

If you prefer native options to combine sheets in Google Sheets, there are two functions for the job. Let’s begin with a simple task:

There is a Google Sheets doc with two sheets: Invoices 2019 and Invoices 2020. Each of these sheets has eight columns (A:H) of the same name. The first row contains the column titles. Our task is to merge data vertically from these sheets into one.

Use FILTER in Google Sheets

FILTER is a Google Sheets function that filters out subsets of data from a specified data range by a provided condition.

To combine sheets using FILTER, apply the following formula:

={FILTER({sheet#1-range},LEN({sheet#1-range-first-column})>0);
FILTER({sheet#2-range},LEN({sheet#2-range-first-column})>0);...}

The LEN condition (LEN({sheet#1-range-first-column})>0) in the FILTER formula is required to skip empty rows in the range. Otherwise, the formula will also add empty rows when merging the rows with data.

In our case, the formula will look as follows:

={
  FILTER('Invoices 2019'!A1:H, LEN('Invoices 2019'!A1:A) > 0);
  FILTER('Invoices 2020'!A2:H, LEN('Invoices 2020'!A2:A) > 0)
}

You can merge more than two sheets the same way. Just add the relevant sheets and their ranges to the formula.

Note: Make sure to specify the data range from the second sheet (and subsequent ones) without the title row, such as A2:H instead of A1:H. Otherwise, the title row will also be imported. For example,

={
  FILTER('Invoices 2019'!A1:H, LEN('Invoices 2019'!A1:A) > 0);
  FILTER('Invoices 2020'!A1:H, LEN('Invoices 2020'!A1:A) > 0)
}

For more on how it works, read this FILTER Function How-to Guide.

Use QUERY in Google Sheets

QUERY is a Google Sheets function to fetch the data based on specified criteria. You can also amend formatting, change the order of columns, and perform other manipulations with the imported data.

To combine sheets using QUERY, apply the following formula:

=QUERY({{sheet#1-range};{sheet#2-range};...,"Select * where Col1 is not null")

In our case, the formula will look as follows:

=query({'Invoices 2019'!A1:H;'Invoices 2020'!A2:H},"Select * where Col1 is not null")

You can merge more than two sheets together with QUERY if you add relevant sheets and their ranges in the formula. Don’t forget that the ranges from the second and subsequent sheets should be specified without the title row, just like with the FILTER function above.

Mind that the mentioned QUERY and FILTER formulas merge sheets with the same number of columns only. For other cases, read our guide on How To Combine Sheets With a Different Number of Columns Into One.

Combine sheets into one and consolidate data using QUERY

We’ve successfully combined sheets with invoice data. Merging is only half the job, though. You can also consolidate the data in Google Sheets. For example, the invoice amount of the Voomm company was $8,371 in 2019 and $2,917 in 2020, so Voomm’s total invoice amount is $11,288.

Our goal is to consolidate the invoice amount for all companies that have records on both sheets. For this, we’ve modified the QUERY formula above to get the following:

=query({'Invoices 2019'!A1:H;'Invoices 2020'!A2:H},"Select Col2,sum(Col8) where Col1 is not null group by Col2")

Since company_name is the only iterative parameter for which we are consolidating data, we do not need to query other columns from the sheets. Read the QUERY How-To Guide to learn more.

How to merge sheets from another Google Sheets spreadsheet/workbook without formulas

We already know how to combine sheets within a Google Sheets workbook. Now let’s explore how you can import two or more sheets from another spreadsheet and merge them into one.

I have a spreadsheet on my personal Google account. Let’s name it External spreadsheet. I need to import and merge two sheets (Invoices 2019 and Invoices 2020) from the spreadsheet that has been featured in the examples above. This spreadsheet is on my working Google account. We’ll check out all possible options, and the no-formula one will be first.

With Coupler.io’s Google Sheets integration, you can import and merge sheets from other workbooks without writing a formula. We’ve described the setup flow above. In brief, it looks as follows:

Use formulas to merge sheets from different Google Sheets docs

You can do the same using QUERY or FILTER formulas nested with IMPORTRANGE. It is a function that allows you to import a data range from one Google Sheets document to another. Read the IMPORTRANGE tutorial to learn more about it.

Another use case is when you need to merge a sheet from one Google Sheets doc and a sheet from another Google Sheets doc. You can handle this using either FILTER+IMPORTRANGE or QUERY+IMPORTRANGE. The difference is that you’ll have to specify different spreadsheet IDs in the respective parameters of the IMPORTRANGE formula.

Use FILTER + IMPORTRANGE

The FILTER+IMPORTRANGE formula syntax to combine two or more sheets from another spreadsheet is the following:

={FILTER(IMPORTRANGE("{spreadsheet-ID}", "{sheet#1-name}!{sheet#1-range}"),LEN(IMPORTRANGE("{spreadsheet-ID}", "{sheet#1-name}!{sheet#1-first-column}"))>0);
FILTER(IMPORTRANGE("{spreadsheet-ID}", "{sheet#2-name}!{sheet#2-range}"),LEN(IMPORTRANGE("{spreadsheet-ID}", "{sheet#2-name}!{sheet#2-first-column}"))>0);...}

This is how the formula looks for our use case:

={
  FILTER(importrange("1nQBbnawdY_V44lk55A3UDsdGcEQB9YR6DIpODKc94Ck", "Invoices 2019!A1:H"), LEN(importrange("1nQBbnawdY_V44lk55A3UDsdGcEQB9YR6DIpODKc94Ck", "Invoices 2019!A1:A")) > 0);
  FILTER(importrange("1nQBbnawdY_V44lk55A3UDsdGcEQB9YR6DIpODKc94Ck", "Invoices 2020!A2:H"), LEN(importrange("1nQBbnawdY_V44lk55A3UDsdGcEQB9YR6DIpODKc94Ck", "Invoices 2020!A2:A")) > 0)
}

Merge cells in Google Sheets with QUERY + IMPORTRANGE

The QUERY+IMPORTRANGE formula syntax to combine two or more sheets from another spreadsheet is shorter:

=QUERY({IMPORTRANGE("{spreadsheet-ID}", "{sheet#1-name}!{sheet#1-range}");IMPORTRANGE("{spreadsheet-ID}", "{sheet#2-name}!{sheet#2-range}");...,"Select * where Col1 is not null")

In our case, the formula will look as follows:

=query({importrange("1nQBbnawdY_V44lk55A3UDsdGcEQB9YR6DIpODKc94Ck", "Invoices 2019!A1:H");importrange("1nQBbnawdY_V44lk55A3UDsdGcEQB9YR6DIpODKc94Ck", "Invoices 2020!A2:H")},"Select * where Col1 is not null")

IMPORTRANGE #REF! You need to connect these sheets

It’s OK if you’ve got this warning during the initial run of either FILTER+IMPORTRANGE or QUERY+IMPORTRANGE formula. Click Allow access to connect the source and target spreadsheets. After that, the formula will import and merge Google Sheets. If you’ve got another error, check out our blog post Why IMPORTRANGE Is Not Working: Errors and Fixes.

Use Claude in Google Sheets to combine and analyze your tabs

On October 6, 2026, Anthropic released Claude for Google Workspace in public beta for all paid Claude plans. To use it in Google Sheets, install Claude by Anthropic from the Google Workspace Marketplace. Then open a spreadsheet and go to Extensions > Claude > Open Claude. The Claude for Sheets sidebar reads the open spreadsheet and the cells you select. It writes formulas and builds tabs and charts. For joins or cleanup, it can also run Python. Don’t confuse it with the older add-on that uses =CLAUDE() cell functions and an API key.

With the sidebar open, ask Claude in plain language to combine your tabs. For example: “Stack the Invoices 2019 and Invoices 2020 tabs into a new Combined tab.”

By default, Claude asks for your permission before each edit, and what it writes stays in your sheet. In my test, it wrote a single FILTER formula into a new Combined tab that keeps one header row and skips blank rows. Claude merges only the tabs you mention. If you add rows to Invoices 2019 or Invoices 2020 later, the Combined tab updates on its own. If you add a new tab, such as Invoices 2021, you need to ask Claude to include it. If you don’t want to ask every time, set up the merge in Coupler.io instead. It picks up new tabs that match a name pattern, such as Invoices 20.+, and refreshes on a schedule. Claude works with the spreadsheet you have open, so for tabs in separate spreadsheets, IMPORTRANGE or Coupler.io is the surer path.

Once your tabs are merged, whether with FILTER, QUERY, Coupler.io or Claude itself, the sidebar becomes your analysis layer. You can ask it to summarize the combined data, build a dashboard tab, flag outliers or chart a trend. When I asked for the top 10 companies by invoice amount, Claude added a totals formula and a bar chart to the Combined tab.

Before inserting the chart, it checked that the company totals added up to the amount column. As with the merge, it listed the pending edits first, such as formatting the totals as currency and inserting the chart, and waited for my approval.

When the merged tab is the output of a Coupler.io data flow, these formulas recalculate on every refresh. If you’d rather work in Claude.ai, ChatGPT, Gemini or another AI tool, Coupler.io’s AI integrations deliver the merged dataset there as well. The Claude.ai route is covered step by step in our guide on how to connect Google Sheets to Claude.

Combine Google Sheets data on a schedule with Coupler.io

Get started for free

Which option is best to combine Google Sheets?

FILTER and QUERY handle most merges inside one spreadsheet. For merges across spreadsheets, QUERY + IMPORTRANGE is the better formula choice, since its syntax is much shorter than FILTER nested with IMPORTRANGE.

You can also pull data from 400+ sources into the same spreadsheet. For example, here is how to merge Excel sheets. And here’s how the four options compare:

MethodSetup effortBest forWatch out for
Coupler.ioLowScheduled merges across workbooks or sources, with no formulas to maintainPricing depends on connected accounts, destinations and refresh frequency
FILTERLowSimple merges within one spreadsheetFormula gets long when nested with IMPORTRANGE; column counts must match
QUERY + IMPORTRANGEMediumCross-workbook merges when you want to stay in formulasIMPORTRANGE needs connection authorization; column counts must match
Claude in Google Sheets (sidebar)LowPlain-language merges and analysis in the open spreadsheetPublic beta on paid Claude plans; works only within the open spreadsheet; new tabs need a new request; output stays in your sheet as formulas you own

Pick Coupler.io when new tabs or data from other spreadsheets and apps keep arriving and the merge has to refresh on a schedule. If you merged through a Coupler.io data flow, you can also ask questions about the resulting dataset in the AI Agent chat without leaving Coupler.io.

Exit mobile version