What is IMPORTRANGE in Google Sheets?
IMPORTRANGE loads values from a range in another Google spreadsheet into your current file. You pass the spreadsheet URL or key plus a range string with an optional sheet name. After you grant access once, the link stays live and updates when the source changes.
When to use it
Use IMPORTRANGE to build dashboards, consolidate regional reports, or mirror a master data tab into many downstream workbooks without CSV exports.
When to skip it
Skip IMPORTRANGE when you need two-way sync, very high refresh frequency, or row-level security between teams. The Sheets API or a database may fit better.
How it works
-
1
Copy the spreadsheet ID from the source URL between /d/ and /edit.
-
2
Write =IMPORTRANGE("spreadsheet_url_or_id", "SheetName!A1:Z1000") in the destination cell.
-
3
Click Allow access the first time so the destination file can read the source.
-
4
Leave room for the imported block to spill if the range may grow; anchor dashboards with QUERY or FILTER on top.
-
5
Name the source tab clearly so range strings survive harmless renames when you update formulas.
-
6
Document which file is the system of record so editors do not edit imported cells by mistake.
Examples in Google Sheets
Master price list
=IMPORTRANGE("https://docs.google.com/spreadsheets/d/abc123/edit", "Prices!A:D") pulls SKU, name, cost, and retail into a quoting sheet.
Regional rollup
=IMPORTRANGE(url, "West!A1:F") on a HQ dashboard combines with similar formulas for other regions on separate tabs.
Filter imported rows
=QUERY(IMPORTRANGE(id, "Data!A1:E"), "select * where Col4 = 'Active'", 1) shows only active records from a shared master.
Better Sheets resources
Common mistakes
-
Editing imported values locally instead of changing the source sheet, then wondering why numbers revert.
-
Using #REF! ranges after someone renamed or deleted the source tab without updating the string.
-
Chaining dozens of IMPORTRANGE calls on one tab, which slows recalc and confuses ownership.
-
Sharing the dashboard without sharing the source file, which breaks viewers with permission errors.
-
Assuming IMPORTRANGE pulls formatting or formulas; it returns displayed values only.
Frequently asked questions
- Why does IMPORTRANGE say Loading?
- Large ranges or many links can take time. Heavy files may show Loading until Google finishes fetching.
- Can IMPORTRANGE pull from Excel?
- No. The source must be a Google spreadsheet. Upload Excel to Drive and convert first.
- How often does IMPORTRANGE update?
- It refreshes when the spreadsheet recalculates, often when someone opens the file or the source changes.
- IMPORTRANGE vs IMPORTDATA?
- IMPORTRANGE links Google Sheets files. IMPORTDATA fetches CSV or TSV from a public URL.
- Can viewers see the source URL?
- Anyone who can view the formula sees the spreadsheet key. Hide logic on protected tabs if that matters.
- Does IMPORTRANGE work with ARRAYFORMULA?
- You usually wrap IMPORTRANGE inside QUERY, FILTER, or other functions rather than ARRAYFORMULA alone.
- What causes #REF! on IMPORTRANGE?
- Wrong ID, missing permission, invalid range syntax, or a deleted source tab.
Related Tutorials
Watch how IMPORTRANGE works
Create a Public Sheet and Private Sheet: Using ImportRange()
How do I reference a different spreadsheet in Apps Script?
Google Sheets Easter Eggs Beyond PRIDE
Convert Google Sheets into a REST API
Combine Data from a Tab and a Totally Different Sheet | ImportRange and Curly Brackets!
Make Unsplash in Google Sheets - Part 2
Related blog posts
Guides that explain IMPORTRANGE in more depth.
How to reference a different Google Spreadsheet in Apps Script?
Transferring Data Between Cells in Different Spreadsheets
Read post →5 Advanced Formulas To Build a Simple Monthly Budget Template
Track your expenses, manage your finances, hoping to save money, plan for the future, and generally during the month you want to reduce stress. Use these advanced formulas to get more out of Google Sheets.
Read post →What's Better Than Google Sheets?
Nothing is better than Google Sheets. You just need to learn more about the unlimited power of Google Sheets. Functions, Formulas, Apps Script and more.
Read post →Related terms
IMPORTXML
IMPORTXML fetches a URL and returns data matching an XPath query. You can scrape page titles, meta tags, table cells, or RSS-style XML fields. It is more precise than IMPORTHTML when you need one value or a repeating node set from structured markup.
Read guide →IMPORTHTML
IMPORTHTML fetches a public web page and returns a table or list from its HTML. You provide the URL, the query type (table or list), and the index of which table or list on the page to import. It is a quick scraper for simple pages without writing Apps Script.
Read guide →IMPORTDATA
IMPORTDATA retrieves a text file from a web address and parses it into sheet cells. It works with comma- or tab-separated values published at a stable URL. Government open data, published exports, and simple report endpoints are common sources.
Read guide →QUERY
QUERY runs a SQL-like statement against a range of cells and returns a new table of results. You pass a data range, a query string with SELECT, WHERE, ORDER BY, and optional headers. It is the fastest way to filter, sort, group, and pivot sheet data without helper columns.
Read guide →Done reading about IMPORTRANGE?
Membership unlocks 600+ tutorials, unlimited generators, and every template. Practical lessons. Zero fluff.
Need this once
Jump to a free tool or a single tutorial for this topic.
Learning Sheets for real
Unlock the full library, generators, and templates with membership.