Отображение названия листа в Google Spreadsheets


39

Есть ли способ отобразить имя листа в результате выполнения функции в таблицах Google (точно так же, как этот вопрос , кроме в Google Sheets)?


Пожалуйста, смотрите мой ответ на этот вопрос о stackoverflow: stackoverflow.com/a/53409439/279326
Николас Джанел

Ответы:


11

Кто-то написал сценарий для этого. Она доступна в Tools > галерея Script ... . Найдите «имя листа» и установите скрипт, затем используйте его с =getCurrentSheetName().


9
Как получить доступ к этому сценарию в «новых» Google Sheets (который теперь использует дополнительный магазин)?
Бенджамин

4
Это больше не работает. Используйте ответ от @ user93341. Я прошел весь процесс, чтобы опубликовать его функцию в магазине надстроек, и на последнем шаге они хотели 5 долларов для проверки моей учетной записи, и я бы ограничился публикацией 20 товаров. Ле вздох
Бруно Броноски

49

Перейдите в ИнструментыРедактор скриптов и добавьте этот код:

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

В ячейку, где вы хотите добавить имя листа:

=sheetName()

Возникла проблема с доступом к именам листов с помощью функций API, показанных ниже - когда он возвращал только имя первого листа. Это было исправлено в марте 2015 года .


Не могли бы вы расширить свой ответ для тех из нас, кто не знаком со скриптовым инструментом?
codingbadger

1
@ Барри 1) Выберите Инструменты-> Редактор скриптов. 2) В полученный текстовый файл добавьте эту функцию в конце. 3) Нажмите Сохранить. 4) Теперь вы можете использовать эту функцию на своем листе.
Гамлиела

5
Хотя эта функция работает нормально, она не обновляется при изменении имени листа, поэтому на самом деле она бесполезна.
jesjimher

1
@jesjimher, согласно этому справочному форуму Google Docs , если вы зайдете в редактор сценариев и заново сохраните сценарий, вернувшись к листу, вы увидите, что названия вкладок были правильно обновлены.
Aribeiro

1
Я знаю, но это сбивает с толку и полностью противоположно тому, как работают формулы листа. Я ожидаю, что формула будет обновляться при изменении данных, на которые она ссылается. Теперь эта формула не сделает этого, пока я не открою и не сохраню исходный скрипт. Я мог бы просто ввести название листа вручную каждый раз, избавляя от хлопот.
июня

6

Вот фрагмент кода пользовательской функции, чтобы получить имя электронной таблицы по ее идентификатору .

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

В ячейке передайте Идентификатор листа (посмотрите идентификатор URL в электронной таблице).

=GetSpreadsheetNameById('49nvkwOE-203nXDLGGJtg0htFKK020dsd939AAPZU')

1
Это всего лишь небольшое изменение в ответе @ user93341 выше.
JamesThomasMoon1979

Это приводит к следующей ошибке: «У вас нет разрешения на вызов SpreadsheetApp.openById.»
Aurovrata

Это возвращает имя документа вместо имени листа, замените return ss.getName();его, return ss.getActiveSheet().getName();если хотите, чтобы имя листа (мне действительно нужно было имя документа, так что спасибо)
Эмильен

-1

Попробуй это:

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

Вставьте его в Инструменты> Редактор скриптов и вызовите функцию из ячейки следующим образом:

=getNameOfThisSheet(NOW())

NOW(), Бывший GoogleClock()параметр помогает проблем избежать с запоминанием.


GOOGLECLOCK () был заменен на NOW () с другой стороны, недетерминированные функции не могут использоваться в качестве аргументов пользовательских функций.
Рубен
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.