How to Link Data from One Google Sheet to Another
Tired of manually copying and pasting data from one Google Sheet to another? There’s a much better way to centralize your information and create a single source of truth. This tutorial will walk you through the best function for linking data between Google Sheets, saving you from the headache of manual updates and potential errors.
Enter IMPORTRANGE: Your Go-To for Connecting Sheets
The most powerful and efficient method for linking Google Sheets is by using the IMPORTRANGE function. This function pulls a specified range of cells from one spreadsheet (the source) and displays it inside another (the destination). The best part? The connection is live. When data changes in the source sheet, it automatically updates in your destination sheet.
This is perfect for creating:
- A "master" report that pulls KPIs from separate team sheets.
- Dashboards that summarize data from multiple project trackers.
- Aggregated views of sales data, inventory logs, or marketing campaign results.
The syntax for the function is straightforward:
=IMPORTRANGE(spreadsheet_url, range_string)
Let's quickly break down those two arguments:
spreadsheet_url: This is the full URL of the source Google Sheet you want to pull data from. It goes inside double quotes.range_string: This tells the function exactly which cells to import. It's a text string (also in double quotes) that includes the tab name and the cell range, like"Sheet1!A1:D50".
A Step-by-Step Guide to Using IMPORTRANGE in Google Sheets
Ready to try it yourself? Follow these simple steps to link your first two sheets. For our example, let's imagine we're building a master sales dashboard and need to import data from a sheet named "Q1 Regional Sales."
Step 1: Get the URL of Your Source Sheet
First, open the Google Sheet you want to pull data from. This is your source sheet. Click on the address bar in your browser and copy the entire URL. It should look something like this:
https://docs.google.com/spreadsheets/d/1aBcDeFgHiJkLmNoPqRsTuVwXyZ/edit#gid=0
Keep this URL handy for the next steps.
Step 2: Identify the Data Range to Import
Now, identify the precise data you want to bring over. You need two pieces of information:
- The tab name where your data lives. Let's say our source data is on a tab called
Q1 Sales. - The cell range containing the data. For this example, our data is in columns A through F, covering all rows. The range would be
A1:F.
Your full range_string puts these together using an exclamation point: "Q1 Sales!A1:F". Be sure to enclose it in quotes.
Step 3: Write Your IMPORTRANGE Formula
It's time to build the formula. Open your destination sheet (where you want the data to appear) and click on an empty cell, preferably A1. Type in the IMPORTRANGE formula using the URL and range string you just gathered.
Your formula will look like this:
=IMPORTRANGE("https://docs.google.com/spreadsheets/d/1aBcDeFgHiJkLmNoPqRsTuVwXyZ/edit", "Q1 Sales!A1:F")
Remember to replace the example URL with your actual source sheet's URL. Once you've entered the formula, press Enter.
Step 4: Allow Access Between the Sheets
The first time you connect two sheets, Google requires you to grant permission. As soon as you hit Enter, the cell will show a #REF! error with a small pop-up message: "You need to connect these sheets."
Simply hover over the cell with the error and click the blue "Allow access" button. This is a one-time security step for each new source sheet you link to. This explicit permission ensures that spreadsheet data can't be pulled without your knowledge.
Once you click the button, Google will establish the connection, and after a short "Loading..." message, your data will appear.
That's it! Your Q1 sales data is now dynamically linked to your master dashboard. Any changes made in the "Q1 Regional Sales" sheet will automatically reflect here.
IMPORTRANGE Not Working? Common Errors and Fixes
Formulas can sometimes be tricky. If you're not seeing your data appear, you've likely run into one of these common errors. Here’s what they mean and how to fix them.
#REF! Error: “You need to connect these sheets.”
This is the permission error we covered in Step 4. It's not really an "error" but a required step. The fix is simple: hover over the cell and click the "Allow access" button. If the button doesn't appear, you may need to refresh the page or delete and re-enter the formula to trigger it.
#REF! Error: “Spreadsheet cannot be found or you do not have permission to access it.”
This message tells you the URL is either incorrect or you don't have viewership rights for the source sheet. Double-check that you copied the correct full URL from the source sheet. Also, ensure you are logged into a Google account that has at least "View" access to that spreadsheet.
#REF! Error: “Cannot find range or sheet for imported range.”
This is the most common error and it almost always points to a typo in your range_string. Check for these mistakes:
- Misspelled Tab Name: Is your tab named "Q1 Sales" or "Sales Q1"? Go back to the source sheet and confirm the exact name.
- Incorrect Range: Did you type
!"instead of!A1? The format must be"SheetName!CellRange". - Extra Spaces: A space at the beginning or end of your tab name inside the quotes (e.g.,
"Q1 Sales "!A1:F) will cause it to fail.
#N/A or Formula Parse Error
This usually indicates a problem with the formula's syntax itself. Make sure you haven't forgotten a comma between the URL and the range, or that both the URL and range are enclosed in double quotes.
Correct: =IMPORTRANGE("URL", "SheetName!A1:B10")
Incorrect: =IMPORTRANGE(URL", SheetName!A1:B10) (Missing quotes and comma placement)
Pro Tips for Advanced Google Sheet Linking
Once you’ve mastered the basics of IMPORTRANGE, here are a few ways to take your connected spreadsheets to the next level.
Combine IMPORTRANGE with QUERY for Smarter Reports
Often, you don't need to import an entire dataset, you only need specific rows or columns. By nesting your IMPORTRANGE inside a QUERY function, you can import and filter data in a single step.
Let's say from our Q1 Sales sheet, we only want to import data where the region (in column D) is "West" and the deal value (column F) is over $5,000.
=QUERY(IMPORTRANGE("YOUR_URL_HERE", "Q1 Sales!A1:F"), "SELECT * WHERE Col4 = 'West' AND Col6 > 5000")
Notice a few key things here:
QUERYwraps around the entireIMPORTRANGEfunction.- Instead of using column letters like D and F, we refer to columns by number:
Col4for the fourth column (D) andCol6for the sixth column (F). This is a requirement when usingQUERYwithIMPORTRANGE.
This combination is incredibly powerful for building focused, automated dashboards that pull in only the most relevant information.
Stack Data from Multiple Sheets into One List
Need to combine sales data from a Q1 sheet and a Q2 sheet into one master list? You can use curly braces { } to stack multiple IMPORTRANGE calls vertically.
Place a semicolon between the two IMPORTRANGE functions. The formula would look like this:
IMPORTRANGE("Q1_SHEET_URL", "Data!A2:E"),
IMPORTRANGE("Q2_SHEET_URL", "Data!A2:E")
}```
This places the Q2 data directly below the Q1 data, creating a single, continuous list. Just be sure both ranges have the same number of columns.
### Use a Helper Cell for Your URLs and Ranges
Instead of hardcoding the URL and range strings directly into your formula, you can reference them from other cells. This makes your formulas much easier to read and update. For example:
- In cell A1, paste your source URL.
- In cell B1, type your range string (e.g., `"Q1 Sales!A:F"`).
- Your `IMPORTRANGE` formula becomes: `=IMPORTRANGE(A1, B1)`.
Now, if you need to change your source sheet or the data range, you only have to edit the text in a cell instead of dissecting a long formula.
## Final Thoughts
Knowing how to use `IMPORTRANGE` is a foundational skill for anyone serious about managing data in Google Sheets. It automates manual reporting, reduces the risk of human error, and ensures everyone on your team is working from the same real-time information. Mix it with functions like `QUERY`, and you have a powerful tool for building custom dashboards.
Linking data between spreadsheets is a great start, but the real challenge for most teams is bringing together data from completely different platforms buried in tools like Shopify, Facebook Ads, Google Analytics, and your CRM. That's where we wanted to build a better way. With our platform, [Graphed](https://www.graphed.com/register){:target="_blank" rel="noopener"}, you can securely connect all your sources in one place, including Google Sheets. Instead of complicated formulas and manual dashboard configurations, just ask in simple language to get the exact real-time charts and reports you need, helping you spend less time gathering data and more time acting on it.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?