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:
- Get started by clicking Proceed in the interactive form below.
- Sign in to Coupler.io for free (no credit card required). Next, connect your Google account and select the necessary spreadsheet from your Google Drive and the sheets you’ll merge.
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.
- Once you’ve configured your source settings, move forward. Next, you can preview the data from the sheets to be merged and apply the necessary transformations, such as:
- Rename, rearrange, hide, or add columns.
- Apply filters and sort your data.
- Create new columns with custom formulas, etc.
- When you’re ready with your data, proceed to connect your Google account, specify the spreadsheet, and select the sheet that will receive the combined sheets.
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:
- Pattern:
.*
Match sheets by year:
2021.+matches: 2021-01, 2021-02, 2021-03, etc.202.+matches: 2020-12, 2021-01, 2021-02, 2022-03, etc..*202.matches: Dec 2020, Jan 2021, Feb 2021, All 2020, 12-2020, 01-2021
Match sheets by name prefix (starts with):
sales data.+matches all sheets with names that start with sales data
Match sheets by name content (contains):
.*sales data.*matches all sheets with names that contain sales data anywhere
Match sheets by name suffix (ends with):
.*sales datamatches all sheets with names that end with sales data
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);...}
{sheet#1-range}: the data range from the first sheet including the title row.{sheet#2-range}: the data range from the second sheet without the title row.{sheet#1-range-first-column}: the first column of the data range from the first sheet.{sheet#2-range-first-column}: the first column (without the title row) of the data range from the second sheet.
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")
{sheet#1-range}: the data range from the first sheet including the title row.{sheet#2-range}: the data range from the second sheet without the title row.
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:
- Click Proceed in the form below:
- Connect your Google account, then select a file on your Google Drive and sheets that you want to merge.
- Then click Connect one more source, select Google Sheets, and specify another workbook and the sheet(s) you want to combine. This way, you can add multiple Google Sheets documents you want to combine.
- After setting up your sources, proceed to the next step to preview the data, choose how you want to merge it, and make transformations if needed. You can append or join data:
- Append data if you need to combine sheets with identical structures.
- Join data if you need to merge sheets with different structures.
- Next, connect your Google account, then select the destination spreadsheet and a sheet to transfer the merged data.
- Lastly, configure your data refresh schedule and run the data flow.
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);...}
{spreadsheet-ID}: the ID or URL of the Google Sheets document you’re importing data from{sheet#-name}: the name of the sheet{sheet#-range}: the data range from the sheet including the title row.{sheet#-first-column}: the first column of the data range from the sheet.
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")
{spreadsheet-ID}: the ID or URL of the Google Sheets document you’re importing data from{sheet#-name}: the name of the sheet{sheet#-range}: the data range from the sheet including the title row.
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 freeWhich 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:
| Method | Setup effort | Best for | Watch out for |
|---|---|---|---|
| Coupler.io | Low | Scheduled merges across workbooks or sources, with no formulas to maintain | Pricing depends on connected accounts, destinations and refresh frequency |
| FILTER | Low | Simple merges within one spreadsheet | Formula gets long when nested with IMPORTRANGE; column counts must match |
| QUERY + IMPORTRANGE | Medium | Cross-workbook merges when you want to stay in formulas | IMPORTRANGE needs connection authorization; column counts must match |
| Claude in Google Sheets (sidebar) | Low | Plain-language merges and analysis in the open spreadsheet | Public 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.