Back to homepage
Cross-file comparison guide

How to compare two separate Google Sheets files

Formulas in Google Sheets can only see tabs in the same file. To compare lists that live in different spreadsheets, such as last quarter's file and this quarter's, or your copy and a colleague's, you first have to pull one file into the other. Here is the manual route with IMPORTRANGE, and the paste-a-link route with SheetDiff.

Quick answer

Bring the other file's data into your spreadsheet with IMPORTRANGE, or copy its tab across, then compare the two tabs by a key column such as customer ID, SKU or email. SheetDiff sets up the IMPORTRANGE for you when you paste the other file's link.

Step 1: Pull the other file in with IMPORTRANGE

  1. In your spreadsheet, add a new tab and call it Other file.
  2. In cell A1, enter the other file's link and the range you need:
    =IMPORTRANGE("https://docs.google.com/spreadsheets/d/FILE_ID/edit", "Sheet1!A1:F")
  3. The first time, the cell shows #REF!. Select it and click Allow access. You only need to do this once for that source file.

The imported data stays linked, so it updates when the other file changes, and the other file itself is never edited. If you would rather have a fixed copy, open the other file, right-click its tab and choose Copy to → Existing spreadsheet instead.

Step 2: Find what's missing between the two lists

With your data in Sheet1 and the ID in column A of both tabs, this lists IDs in your file that the other file does not have:

=FILTER(A2:A, A2:A<>"", ISNA(MATCH(A2:A, 'Other file'!A2:A, 0)))

For the opposite direction, put the same formula in a spare column of the Other file tab, to the right of the imported data, with Sheet1!A2:A as the lookup range. Avoid wrapping IMPORTRANGE inside a formula you fill down hundreds of rows; import once into a tab and point your formulas at that.

Step 3: See which values changed

For IDs that appear in both files, compare each column you care about. For column C:

=IFERROR(IF(C2=XLOOKUP(A2, 'Other file'!A:A, 'Other file'!C:C), "Same", "Changed"), "Missing")

Fill it down, then repeat for every other column. A filter on the helper columns lets you review only the rows marked Changed or Missing.

Where the IMPORTRANGE approach gets painful

  • One formula per column: a ten-column sheet needs ten helper columns, and someone still has to read them all.
  • Fragile references: the range is plain text, so renaming the tab in the other file breaks the import.
  • No ID column: lookups need a unique key. Two plain lists of names or addresses are hard to match this way.
  • Duplicate IDs: MATCH and XLOOKUP silently use the first match and ignore the rest.

The one-click way: paste a link into SheetDiff

  1. Open the spreadsheet you want the results in and choose Extensions → SheetDiff → Start.
  2. Paste the other Google Sheet's link in the sidebar. SheetDiff adds its data as a new tab using IMPORTRANGE.
  3. The first time, Google asks you once to Allow access. This is Google's standard prompt for connecting two files.
  4. Match rows by a key column, by whole row for lists without IDs, or by row order, then click Compare.

You see how many rows are only in A, only in B, changed and matching, plus a plain-English summary. Click a row in the sidebar preview to jump to it, or open the color-coded SheetDiff Report tab with clickable row numbers. Changed numbers show both the difference and the percentage, for example +5 (+5.6%). Your tabs are never modified.

Which method should you use?

  • IMPORTRANGE and formulas: fine for a quick check of one or two columns between files with clean, unique IDs.
  • SheetDiff: better for regular comparisons, sheets with many columns, lists without IDs, or a report you want to share.
  • Both lists already in one file? Follow the guide to compare two tabs in Google Sheets instead.
Frequently asked questions

Do I need edit access to the other file?

No. IMPORTRANGE only needs you to be able to open the other file, so view access is enough.

Does SheetDiff change the other file?

No. The other file is only read through IMPORTRANGE. Your own tabs are not modified either; results go to a separate SheetDiff Report tab. You can delete the imported tab when you are done.

Does the owner of the other file need SheetDiff?

No. SheetDiff runs in the spreadsheet you have open. The other file just needs to be shared with you.

Is it free?

Yes. The free plan compares sheets of any size, 5 times a day, with exact counts and the first 25 rows of each list. Pro is $10 a year for every difference, unlimited comparisons, CSV export, multi-column keys, saved presets and more.

Can I compare a file with an older version of itself?

Yes. In version history, make a copy of the older version and paste that copy's link into SheetDiff. If you check the same tab every week, snapshots are simpler; see how to see what changed in a Google Sheet.

Compare Two Files Free Compare a CSV Instead