Is there any way to display a sheet name as the result of a function in a Google Spreadsheets (exactly like this question, except in Google Sheets)?

migrated from superuser.com Jun 6 '11 at 15:58

This question came from our site for computer enthusiasts and power users.

up vote 11 down vote accepted

Someone has written a script to do this. It is available in Tools > Script gallery.... Search for "sheet name" and install the script, then use it with =getCurrentSheetName().

  • 9
    How to access this script in the "new" Google Sheets (which now uses an add-on store)? – Benjamin Mar 29 '14 at 6:13
  • 4
    This no longer works. Use the answer from @user93341. I went through the entire process to publish his function to the the Add-On Store and in the last step they wanted $5 to verify my account and I would be limited to publishing 20 items. Le sigh. – Bruno Bronosky Aug 19 '15 at 18:24

Go to ToolsScript Editor and add this code:

function sheetName() {
  return SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getName();
}

In a cell where you want the sheet name add:

=sheetName()

There was an issue with accessing sheet names via API functions shown below—where it only returned the first sheet name. This was fixed in March 2015.

  • Could you expand upon your answer for those of us that are not familiar with the script tool? – codingbadger Apr 1 '15 at 7:09
  • 1
    @Barry 1) Select Tools->Script Editor 2) In the resulting text file, add this function at the end 3) Click save 4) Now you can use this function in your sheet. – gamliela May 13 '15 at 12:43
  • 4
    While this function works fine, it doesn't update when sheet name changes, so it's not actually useful. – jesjimher May 4 '16 at 7:47
  • This actually fits my use case :D Thanks! – mrgnw Jul 6 '17 at 15:43
  • @jesjimher according to this Google Docs Help Forum, if one goes to the script editor and re-saves the script, going back to the sheet one sees that the tab names were properly updated. – aribeiro Jul 2 at 14:17

Here is a Custom Function code snippet to get a spreadsheet name by it's Identifier.

function GetSpreadsheetNameById(id) {
  var ss = SpreadsheetApp.openById(id);
  return ss.getName();
}

In a cell, pass a sheet Identifier (look in the spreadsheet URL for the identfier).

=GetSpreadsheetNameById('49nvkwOE-203nXDLGGJtg0htFKK020dsd939AAPZU')
  • 1
    This is just a slight change to @user93341 answer above. – JamesThomasMoon1979 Feb 20 '15 at 22:34

Try this:

function getNameOfThisSheet() {
  return SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getName();
}

Paste it in Tools > Script editor and call the function from a cell like this:

=getNameOfThisSheet(NOW())

The NOW(), former GoogleClock(), parameter helps avoid issues with memoization.

  • GOOGLECLOCK() was replaced by NOW() by the other hand non-deterministic functions can't be used as arguments of custom functions. – Rubén Aug 30 '16 at 14:54

protected by Community Oct 2 '17 at 23:12

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.