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. 1

    Copy the spreadsheet ID from the source URL between /d/ and /edit.

  2. 2

    Write =IMPORTRANGE("spreadsheet_url_or_id", "SheetName!A1:Z1000") in the destination cell.

  3. 3

    Click Allow access the first time so the destination file can read the source.

  4. 4

    Leave room for the imported block to spill if the range may grow; anchor dashboards with QUERY or FILTER on top.

  5. 5

    Name the source tab clearly so range strings survive harmless renames when you update formulas.

  6. 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.

Build this without starting from a blank cell

Use a Better Sheets tool for IMPORTRANGE, then watch a walkthrough when you want the full pattern.

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

Browse more tutorials
Create a Public Sheet and Private Sheet: Using ImportRange()

Create a Public Sheet and Private Sheet: Using ImportRange()

Stick around after the 1st portion of the video for bonus content.
How do I reference a different spreadsheet in Apps Script?

How do I reference a different spreadsheet in Apps Script?

I'll show you how to get text from one spreadsheet file to another with ...
Google Sheets Easter Eggs Beyond PRIDE

Google Sheets Easter Eggs Beyond PRIDE

Going beyond PRIDE, to show you some undocumented google sheets hacks th...
Convert Google Sheets into a REST API

Convert Google Sheets into a REST API

How to use Google Sheets as a database by turning it into a REST API wit...
Combine Data from a Tab and a Totally Different Sheet | ImportRange and Curly Brackets!

Combine Data from a Tab and a Totally Different Sheet | ImportRange and Curly Brackets!

Combine Databases and Backup Your Information Effortlessly - Learn how t...
Make Unsplash in Google Sheets - Part 2

Make Unsplash in Google Sheets - Part 2

Fix the case sensitive search with lower(). Add quick links to prefilled...

Related blog posts

Guides that explain IMPORTRANGE in more depth.

Browse the blog

Related glossary terms

Done reading about IMPORTRANGE?

Membership unlocks 636+ 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.