Иногда вам может потребоваться быстрый способ получить имя текущего листа в ячейке (или список всех листов в документах Google Таблиц в ячейках). Один из распространенных сценариев, когда это может потребоваться, может быть, когда вы хотите создать оглавление и хотите быстро получить имена листов в одном месте в виде списка.

К сожалению, в Google Таблицах нет встроенной формулы или функции, которая бы это сделала. Но, к нашему счастью, есть скрипт Google Apps, в котором вы можете создать собственную формулу и делать много вещей, которые иначе вы не можете (включая получение имени листа).

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

Получить текущее имя листа в ячейке

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

Ниже приведен сценарий, который вы можете использовать для этого.

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

Вот шаги, как это использовать:

  • Скопируйте приведенный выше код скрипта Google Apps.
  • Выберите в меню пункт Инструменты.
  • В появившихся параметрах щелкните Редактор сценариев. Это откроет внутренний редактор скриптов приложений в Google Таблицах.
  • В окне Code.gs удалите текст по умолчанию и вставьте указанный выше код сценария.
  • Сохраните проект, щелкнув значок Сохранить на панели инструментов.
  • Закройте окно сценария приложения

Выполнив описанные выше шаги, мы добавили код в этот конкретный документ Google Таблиц.

Теперь вы можете использовать функцию GetSheetName на листе, и она даст вам текущее имя листа.

= GetSheetName ()

Приведенная выше формула не принимает никаких входных аргументов и возвращает имя активного листа.

При использовании формулы вы можете увидеть текст «Загрузка» в ячейке. Просто подождите несколько секунд, и должен появиться результат.

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

Например, когда вы вводите текст = GetSheetName, он не покажет вам подсказку для автозаполнения функции.

Поэтому вам нужно знать точное имя функции, количество аргументов и характер аргументов в случае, если функция принимает какие-либо аргументы.

Получить все имена листов в Google Таблицах

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

Ниже приведен код сценария приложения, который вы можете использовать для этого.

function GetAllSheetNames() {
var out = new Array()
var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();
for (var i=0 ; i<sheets.length ; i++) out.push( [ sheets[i].getName() ] )
return out 
}

Вы можете использовать те же шаги, упомянутые в предыдущем шаге, чтобы скопировать этот код скрипта приложения Google и поместить его в серверную часть.

Когда у вас есть код в скрипте приложения Google и вы его сохранили, вернитесь к книге и в любой ячейке введите формулу

= GetAllSheetNames ()

В приведенном выше коде используется цикл For для обхода всех листов в документе листов Google.

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

Чтобы эта формула работала, у вас должны быть все пустые ячейки, которые будут заполнены результатом формулы. Например, если у вас есть 10 листов в документе, использование этой формулы займет 10 ячеек, начиная с ячейки, в которую вы ввели формулу.

Если в любой из девяти ячеек под ячейкой, в которую вы ввели формулу, есть какое-либо содержимое, эта формула покажет вам справочную ошибку.

Обратите внимание, что формулы в Google Таблицах нечувствительны к регистру, поэтому вы можете использовать это имя формулы в нижнем или верхнем регистре, если хотите.

Вот как вы можете использовать простой код сценария приложения Google, чтобы быстро получить имя активного листа (или все имена листов) в Google Таблицах.

Надеюсь, вы нашли этот урок полезным.