How to Add Data from Multiple Sheets in Google Sheets

Cody Schneider8 min read

Trying to add up data from multiple tabs in Google Sheets is a classic spreadsheet challenge. You’ve got your sales data split by month, your project updates separated by team, or your ad spend broken down by platform, and now you need a single, unified view. This guide will walk you through the best methods for combining that scattered data, from simple formulas for quick sums to more powerful functions for creating a full master sheet.

GraphedGraphed

Still Building Reports Manually?

Watch how growth teams are getting answers in seconds — not days.

Watch Graphed demo video

Why Combine Data from Multiple Sheets?

Before we get into the "how," it's helpful to know the "why." Consolidating data isn't just about tidying up, it’s about unlocking a clearer view of your performance. When all your relevant data sits together, you can:

  • Create a Master Dashboard: Build a high-level summary that pulls key metrics from different operational sheets (e.g., a "Q1 Summary" sheet that pulls totals from "January," "February," and "March" sheets).
  • Perform Holistic Analysis: Easily compare performance periods (like month-over-month sales) or segments (like regional campaign performance) without constantly clicking between tabs.
  • Simplify Reporting: Instead of sending a pile of individual sheets to your boss or client, you can provide one clean, consolidated report that tells the whole story.

Method 1: The Basic Calculation (Good for Quick Summaries)

The simplest way to add data from other sheets is by referencing the cells directly in a formula. This is perfect when you just need to sum up the same cell from multiple tabs.

The syntax is: SheetName!CellReference

Let’s say you have three sheets named Jan_Sales, Feb_Sales, and Mar_Sales. In each sheet, cell F10 contains the total monthly revenue. To create a Q1 total revenue figure on a new "Summary" sheet, you would click into any cell and type:

=Jan_Sales!F10 + Feb_Sales!F10 + Mar_Sales!F10

You can also use functions like SUM across sheets:

=SUM(Jan_Sales!F10, Feb_Sales!F10, Mar_Sales!F10)

Pros and Cons

  • Pros: Quick, easy to understand, and perfect for simple summary calculations where the cell position is fixed.
  • Cons: This method is not dynamic. If you add a new row in the Jan_Sales sheet and the total moves from F10 to F11, your formula will break. It's also incredibly tedious for combining anything more than a few cells.
GraphedGraphed

Still Building Reports Manually?

Watch how growth teams are getting answers in seconds — not days.

Watch Graphed demo video

Method 2: Stacking Full Datasets with Arrays and QUERY

For a truly dynamic and robust solution, the best method is to stack entire data ranges on top of each other using an array formula, and then use the QUERY function to analyze the combined data. This sounds complex, but it's the gold standard for creating a "master view" that updates automatically.

Imagine you have your monthly sales data on separate tabs, all with the same columns: Date, Sales Rep, and Sale Amount.

Step 1: Stack Your Data Using Curly Braces {}

In Google Sheets, curly braces {} are used to create an array, or a virtual table of data. You can stack data from different tabs by separating the ranges with a semicolon ,.

Create a new sheet and name it "Master". In cell A1, enter the following formula:

={Jan_Sales!A2:C, Feb_Sales!A2:C, Mar_Sales!A2:C}

Let's break this down:

  • { ... }: Tells Google Sheets you're creating an array.
  • Jan_Sales!A2:C: This is the data range from your January sheet. We start at A2 to skip the header row.
  • ,: The semicolon is key. It tells Google Sheets to stack the next data range vertically (i.e., underneath the previous one). If you used a comma instead, it would try to stack them horizontally.
  • Feb_Sales!A2:C and Mar_Sales!A2:C: These are the data ranges from the other sheets.

Important Note: For this to work, all your data ranges must have the exact same number of columns. In our example, they all have three columns (A, B, and C).

You now have a single, long list of all your sales data from January through March in one place.

Step 2: Add Headers and Analyze with QUERY

That stacked data is great, but it has no headers and is hard to analyze. Enter the QUERY function. QUERY lets you run SQL-like commands on your Google Sheets data.

First, let’s add headers automatically. You can include them right in your array formula:

={"Date", "Sales Rep", "Sale Amount", Jan_Sales!A2:C, Feb_Sales!A2:C, Mar_Sales!A2:C}

Next, let's wrap the entire thing in a QUERY function to make sense of it all. The syntax for QUERY is QUERY(data, "query command").

Here’s an example that pulls all your stacked data but filters out any empty rows:

=QUERY({Jan_Sales!A2:C, Feb_Sales!A2:C, Mar_Sales!A2:C}, "SELECT * WHERE Col1 IS NOT NULL")

Why Col1 instead of A? When you use QUERY with a virtual array (like the one we built with curly braces), you can no longer refer to columns by their letter (A, B, C). You must refer to them as Col1, Col2, Col3, and so on.

GraphedGraphed

Still Building Reports Manually?

Watch how growth teams are getting answers in seconds — not days.

Watch Graphed demo video

Example Queries You Can Run:

Now you can get real insights. Here are a few examples of what you can put inside the quotes of your QUERY formula:

  • Get Total Sales by Sales Rep:

"SELECT Col2, SUM(Col3) GROUP BY Col2"

This creates a pivot table-style summary showing the total sales for each rep across all months.

  • Find the Top 5 Sales of the Quarter:

"SELECT * ORDER BY Col3 DESC LIMIT 5"

This sorts all sales in descending order and shows you just the top five.

  • See All Sales from a Specific Rep:

"SELECT * WHERE Col2 = 'Jane Smith'"

This filters the master list to show only the sales records for Jane Smith.

Method 3: IMPORTRANGE (for Data in Different Spreadsheets)

What if your data isn’t just in different sheets, but in entirely different files? That’s where IMPORTRANGE comes in. This function lets you pull a data range from one Google Sheet into another.

The syntax is: =IMPORTRANGE("spreadsheet_url", "sheet_and_range")

Step-by-Step Instructions:

  1. Find the full URL of the spreadsheet you want to pull data from. Copy it.
  2. In your current spreadsheet, type the formula. For example, to pull data from sheet Sales_Data and range A1:F50 from another file, you would use:

=IMPORTRANGE("https://docs.google.com/spreadsheets/d/your_spreadsheet_id_here/edit", "Sales_Data!A1:F50")

  1. The first time you use it, you'll see a #REF! error. Hover over the cell, and a button will appear asking you to "Allow access." Click it to connect the two sheets.

Once connected, the data will import dynamically. Any changes made in the source sheet will automatically reflect in the destination sheet. You can even combine IMPORTRANGE with the QUERY method from above to stack data from multiple separate spreadsheet files!

GraphedGraphed

Still Building Reports Manually?

Watch how growth teams are getting answers in seconds — not days.

Watch Graphed demo video

Method 4: VLOOKUP (for Merging Related Data)

Sometimes you don't want to stack data, you want to enrich it. For example, you have a Sales sheet with Sales Rep ID but not their name, and a separate Employees sheet with their ID, Name, and Region. VLOOKUP can help.

VLOOKUP searches for a key (like the Sales Rep ID) in another sheet and returns a corresponding value from that sheet (like the rep's name).

Example Scenario:

  • Sheet 1 (Q1_Sales): Has Sale ID, Rep_ID, Amount.
  • Sheet 2 (Reps): Has Rep_ID, Full_Name, Region.

In your Q1_Sales sheet, you can add a "Full_Name" column. In the first cell of that column, you'd use this formula:

=VLOOKUP(B2, Reps!A:C, 2, FALSE)

Formula Breakdown:

  • B2: This is the Rep_ID you want to look up.
  • Reps!A:C: This is the data range to search within on the Reps sheet.
  • 2: This tells the formula to return the value from the 2nd column of your search range (which is Full_Name).
  • FALSE: This ensures an exact match. It's almost always what you want.

Drag this formula down the column, and it will pull in the full name for every sales rep, combining information from two sheets into one contextual view.

Final Thoughts

From simple cell additions to powerful stack-and-query methods, Google Sheets gives you several ways to consolidate your information. Choosing the right one depends entirely on your goal, but stacking data with arrays combined with the QUERY function is by far the most scalable and flexible approach for building master reports.

While these formulas save you from copy-pasting, manually wrangling data across tabs and platforms is still a time-consuming part of a marketer's or founder's week. Instead of building and maintaining these complex formulas, a faster solution is to connect your data sources directly to a tool that handles the hard parts for you. With Graphed, we automate this process entirely. You just connect your sources like spreadsheets, your CRM, or your ad platforms, and then ask for the report you want in plain English. We build the dashboard for you in seconds with live, updating data, saving you from the all-too-familiar spreadsheet-wrangling headache.

Related Articles