ShareLane — Share Rows of a SheetGoogle Sheets™ add-on · one share free · Pro $4.99/mo · Version 1.0Read the setup guide

How to share only certain rows or one tab of a Google Sheet

Updated 12 November 2026 · 6 min read

Short answer: You can’t, inside one file. Google Sheets shares a whole spreadsheet: everyone you share it with can reach every tab and every row, and hiding, protecting or filtering does not change that. The safe way is a separate file per person that holds only what they may see. You can build one by hand with IMPORTRANGE and a filter, write a short Apps Script that makes the files, or use an add-on such as ShareLane that makes them, shares them view-only and keeps them up to date.

1. What Google Sheets can do by itself

So the only way to show someone part of a sheet is to give them a different file that holds only that part. The rest of this guide is about making those files and keeping them current.

2. The formula way: IMPORTRANGE and a filter

  1. Create a new spreadsheet for one person, such as “Payroll — Ann”.
  2. In cell A1, pull in their rows from your main spreadsheet. With the person’s email in column C:
    =QUERY(IMPORTRANGE("https://docs.google.com/spreadsheets/d/…", "Payroll!A:F"),
      "select * where Col3 = 'ann@example.com'", 1)
  3. Click Allow access when Google asks to connect the two files.
  4. Share this file with Ann as a viewer. Repeat for every person.

The rows update by themselves when the main sheet changes. The catch is in Google’s help for IMPORTRANGE: once access is allowed, any editor of the new file can import any part of the main spreadsheet. Share these files view-only, never as editor, and keep the formula out of other people’s hands. Each new person is one more file and one more formula to set up by hand, and leaving out a column means listing the columns you keep in the query.

3. The Apps Script way: one file per person

A script can do the copying for you. This one reads the Payroll tab, groups the rows by the address in the Email column, and makes one spreadsheet per person with the header and their rows, shared with them as a viewer.

  1. In your spreadsheet, choose Extensions → Apps Script.
  2. Replace the code with the script below. Change the tab name and the column name, and click Save.
  3. Click Run and allow the permissions Google asks for.
function shareRowsByEmail() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Payroll');
  const values = sheet.getDataRange().getValues();
  const header = values[0];
  const col = header.indexOf('Email');               // the column that says whose row it is
  const byEmail = {};
  values.slice(1).forEach(function (row) {
    const email = String(row[col]).trim().toLowerCase();
    if (email) (byEmail[email] = byEmail[email] || []).push(row);
  });
  Object.keys(byEmail).forEach(function (email) {
    const rows = [header].concat(byEmail[email]);
    const copy = SpreadsheetApp.create('Payroll — ' + email);
    copy.getSheets()[0].getRange(1, 1, rows.length, header.length).setValues(rows);
    copy.addViewer(email);
  });
}

Because the script copies values with getValues(), formulas arrive as their results and nothing in the new file points back at your spreadsheet. A time-driven trigger (Triggers → Add Trigger → Time-driven) can run it every day.

4. Where the simple script falls short

None of this is hard on its own. Together, it is a small program to keep up for every sheet you share this way.

5. With an add-on: ShareLane

ShareLane is our Google Sheets™ add-on for this job. It does what the script above leaves to you:

How to set it up: ShareLane help.

ShareLane — Share Rows of a SheetEach person gets only their rows, kept up to date.
Read the setup guide

Questions

Can I share just one tab of a Google Sheet?

Not as a permission. Sharing in Google Sheets is for the whole file, so anyone you share it with can reach every tab. To show someone one tab, give them a separate file that holds only that tab.

Does hiding a sheet hide it from people I share with?

Not safely. Anyone with edit access can unhide it, and a downloaded or copied file still contains it. Hiding a tab is tidiness, not privacy.

Do protected ranges stop people from seeing data?

No. Protection stops people from editing a range or sheet. Everyone who can open the file can still see it, and Google's help says protection should not be used as a security measure.

Can each person see only their own rows of one spreadsheet?

Not inside one file. The usual way is a separate file per person that holds only their rows: built with IMPORTRANGE and a filter, with a script, or with an add-on that makes and updates the files for you.

RelatedShareLane: share only their rows of a Google SheetShareLane helpHow ShareLane keeps the copies up to date