How to Pull Data from Multiple Tabs in Google Sheets
Wrangling data across multiple tabs in Google Sheets is a common headache. You might have sales figures split by month (Jan, Feb, Mar), marketing campaign results from different platforms (Facebook, Google Ads, TikTok), or regional performance data, all living in separate worksheets. Combining this into a single master view is essential for getting a complete picture, but copy-pasting is a recipe for errors and wasted time. This tutorial will walk you through three effective methods for pulling data from multiple tabs into one, from the simple to the fully automated.
Before You Begin: The Golden Rule
For any of these methods to work smoothly, all your source tabs must have an identical structure. This means the columns must be in the exact same order. For example, if your "Jan" tab has Date | Product | Revenue, your "Feb" and "Mar" tabs must follow that same sequence. Mismatched columns are the number one reason these formulas break, so double-check your setup before starting.
Method 1: The Quick & Simple Stack with Curly Braces {}
If you need to quickly combine a few tabs and don't need fancy filtering, you can use a simple array formula with curly braces {}. This tells Google Sheets, "Take these ranges of data from different sheets and stack them on top of each other."
Example Scenario
Imagine you have three sheets named "Sales_Jan," "Sales_Feb," and "Sales_Mar." Each sheet contains sales records in columns A through C: Date, Sales Rep, and Sale Amount.
Here's how to combine them:
Step 1: Create a Master Sheet
First, create a new tab in your Google Sheet and name it something like "Master Sales." This is where your combined data will live. Add the same column headers in cell A1: Date | Sales Rep | Sale Amount.
Step 2: Write the Array Formula
In cell A2 of your new "Master Sales" sheet, enter the following formula:
={Sales_Jan!A2:C, Sales_Feb!A2:C, Sales_Mar!A2:C}Step 3: Breaking Down the Formula
- { ... }: The curly braces create an array, telling Google Sheets to treat the data inside as a single block.
- Sales_Jan!A2:C: This selects the data range. We start at
A2to skip the header row (since we already have one on our master sheet) and include all rows with data in columns A, B, and C. - ,: The comma acts as a "stacking" operator, telling Sheets to place the next range directly below the previous one.
When you press Enter, Sheets will pull the data from all three tabs and stack it vertically into a master list. Any changes you make on the individual month tabs will automatically update in your master sheet.
Limitation: This method is fantastic for its simplicity but requires manual updates. If you add a "Sales_Apr" tab, you'll have to go back and edit the formula to include ,Sales_Apr!A2:C. It can also pull in blank rows if your source sheets have them.
Method 2: The Power User’s Choice with QUERY
The QUERY function is arguably the most powerful in Google Sheets. It lets you use SQL-like language to select, filter, sort, and aggregate your data. When combined with the curly brace array from Method 1, it becomes an incredibly flexible tool for building dynamic master reports.
Example Scenario
Using the same sales data as before, let's use QUERY to combine our sheets. This will give us more control and help us clean up the data at the same time.
Step 1: Use the QUERY Function
On your "Master Sales" tab, in cell A2, enter this formula:
=QUERY({Sales_Jan!A2:C, Sales_Feb!A2:C, Sales_Mar!A2:C}, "SELECT * WHERE Col1 IS NOT NULL")Step 2: Breaking Down the Formula
- The first part,
{Sales_Jan!A2:C, Sales_Feb!A2:C, Sales_Mar!A2:C}, is the same data array created earlier, serving as the source data. - The second part is the query itself, enclosed in double quotes:
"SELECT * WHERE Col1 IS NOT NULL".
Important Note: When using QUERY with data created by an array {...}, refer to columns as Col1, Col2, Col3, etc., instead of their letter labels A, B, C.
Leveling Up with QUERY
This function transforms your master sheet into a dynamic dashboard. You can tweak the query:
- To view sales from a specific rep ("Maria"):
=QUERY({Sales_Jan!A2:C, Sales_Feb!A2:C, Sales_Mar!A2:C}, "SELECT * WHERE Col2 = 'Maria'")- To see sales greater than $500, sorted descending:
=QUERY({Sales_Jan!A2:C, Sales_Feb!A2:C, Sales_Mar!A2:C}, "SELECT * WHERE Col3 > 500 ORDER BY Col3 DESC")- To select only the Sales Rep and Sale Amount columns:
=QUERY({Sales_Jan!A2:C, Sales_Feb!A2:C, Sales_Mar!A2:C}, "SELECT Col2, Col3 WHERE Col1 IS NOT NULL")By using QUERY, your master sheet becomes a flexible, live report.
Method 3: The Automated “Set It and Forget It” with Apps Script
If your list of tabs is constantly changing (e.g., a new sheet added each month) and you want a truly hands-off solution, Google Apps Script is the answer. Apps Script is a JavaScript-based platform that lets you automate tasks in Google Workspace.
Don’t worry if you've never coded before. You can copy and paste the script below to get started. It will automatically scan your file, find all sheets (except the master), and pull their data in.
Example Scenario
You want "Master Sales" to update daily, pulling data from all other sheets, even if you add new ones.
Step 1: Open the Apps Script Editor
In Google Sheets, go to Extensions > Apps Script. This opens a new tab with the script editor.
Step 2: Paste the Code
Delete any placeholder code and replace it with:
function combineData() {
// CONFIGURATION: Set the name of your master/summary sheet here.
const MASTER_SHEET_NAME = "Master Sales",
const ss = SpreadsheetApp.getActiveSpreadsheet(),
const allSheets = ss.getSheets(),
const masterSheet = ss.getSheetByName(MASTER_SHEET_NAME),
let combinedData = [],
// Clear existing data except headers
if (masterSheet.getLastRow() > 1) {
masterSheet.getRange(2, 1, masterSheet.getLastRow() - 1, masterSheet.getLastColumn()).clearContent(),
}
// Loop through all sheets
allSheets.forEach(function(sheet) {
if (sheet.getName() !== MASTER_SHEET_NAME) {
const dataRange = sheet.getDataRange(),
const values = dataRange.getValues().slice(1), // skip header
combinedData = combinedData.concat(values),
}
}),
if (combinedData.length > 0) {
masterSheet.getRange(2, 1, combinedData.length, combinedData[0].length).setValues(combinedData),
}
}Step 3: Run the Script
Change "Master Sales" in line 2 to your sheet’s name. Save the script and click the Run button. Grant permissions when prompted.
Step 4: Automate with Triggers
To have this run automatically:
- Click the clock icon in the Apps Script editor (Triggers).
- Click + Add Trigger.
- Set:
Click Save. Now, your script will run at scheduled intervals, keeping your master sheet updated automatically.
Final Thoughts
You now have three powerful methods to combine data from multiple Google Sheets tabs:
- Use simple curly braces for quick, manual consolidations
- Leverage
QUERYfor dynamic, filtered reports - Automate everything with Apps Script for a hands-off, always-up-to-date dashboard
While these methods streamline data merging, remember that much manual effort is often involved in exporting and preparing raw data sources. At Graphed, we built a platform to connect directly to your data sources like Google Analytics, Facebook Ads, Shopify, and Salesforce. Just ask in plain English, and we generate real-time reports — no spreadsheet hassle needed.
Related Articles
How to Connect Facebook to Google Data Studio: The Complete Guide for 2026
Connecting Facebook Ads to Google Data Studio (now called Looker Studio) has become essential for digital marketers who want to create comprehensive, visually appealing reports that go beyond the basic analytics provided by Facebook's native Ads Manager. If you're struggling with fragmented reporting across multiple platforms or spending too much time manually exporting data, this guide will show you exactly how to streamline your Facebook advertising analytics.
Appsflyer vs Mixpanel: Complete 2026 Comparison Guide
The difference between AppsFlyer and Mixpanel isn't just about features—it's about understanding two fundamentally different approaches to data that can make or break your growth strategy. One tracks how users find you, the other reveals what they do once they arrive. Most companies need insights from both worlds, but knowing where to start can save you months of implementation headaches and thousands in wasted budget.
DashThis vs AgencyAnalytics: The Ultimate Comparison Guide for Marketing Agencies
When it comes to choosing the right marketing reporting platform, agencies often find themselves torn between two industry leaders: DashThis and AgencyAnalytics. Both platforms promise to streamline reporting, save time, and impress clients with stunning visualizations. But which one truly delivers on these promises?