Формулы в Таблицах Гугл могут многое, но не все. Например, как вернуть имя
текущего листа или его порядковый номер, а его
gid
? Чтобы узнать
имя текущего листа, надо сделать так:
Чтобы заполучить себе в Таблицу подобную формулу, достаточно повторить
несколько шагов.
Шаг 1 "Редактор скриптов"
В текущей Таблице необходимо перейти в редактор скриптов.
Главное меню - Инструменты - Редактор скриптов
Шаг 2 "Ввод кода"
В открывшемся проекте задать его имя и ввести код:
function shinfo(){
return SpreadsheetApp.getActiveSheet().getName();
}
Шаг 3. Необходимо сохранить проект, закрыть его и перейти к Таблице.
ОК. Теперь перейдите в Таблицу и введите формулу
=shinfo()
Получаем порядковый норме листа и его gid
Индекс листа
Чтобы вернуть порядковый номер листа (другими словами - индекс), можно использовать следующую функцию:
function shindex(){
return SpreadsheetApp.getActiveSheet().getIndex();
}
Формула в Таблице
=shindex()
Идентификатор листа
Чтобы вернуть
gid
листа (это его идентификатор, который можно
использовать для ссылки на лист), можно использовать следующую функцию:
function shid(){
return SpreadsheetApp.getActiveSheet().getSheetId();
}
Формула в Таблице
=shid()
Интересный факт
Когда-то такой возможности не существовало, т.к. пользовательские функции
всегда ссылаллись на первый лист Таблицы. См.
https://issuetracker.google.com/issues/36760840
Спасибо тебе огромное, добрый человек, за понятный и полезный ответ!!! Сразу сделал себе и сейчас доволен. Вот так бы все и всегда отвечали :)
ОтветитьУдалитьЕщё раз спасибо!!
Очень рад, что вам нравится!
УдалитьЗдравствуйте все.
ОтветитьУдалитьАлександр, а может случаем знаете код для того чтобы в ячейку выводилось не имя а порядковый номер листа? Нужна такая функция, но пока слаб в JS и не могу сообразить как это описать. Понимаю интуитивно, что нужно оттолкнуться от имени листа, но как на этой основе выяснить порядковый номер листа в книге?!?
Если ещё заходите сюда, может подскажите или мысли какие есть по этому поводу?
Спасибо!
Попробуйте такую функцию
Удалитьfunction GET_SHEET_INDEX() {
return SpreadsheetApp.getActiveSheet().getIndex();
}
Немного обновлен пост, добавлены примеры.
ОтветитьУдалитьКак сделать так чтобы в таблице появлялось имя открывшего его человека? Есть ли такой макрос?
ОтветитьУдалитьЕсли этот пользователь установит для себя триггер, например, на открытие Таблицы, то он сможет поделиться этой информацией с другими. Т.о. пользователь преде должен установить такой макрос.
УдалитьДень добрый! Подскажите , а как наоборот сделать, чтоб при создание нового листа он брал название из ячейки другого листа ? А то при записи макроса , у меня копирует текст в ячейке , переименовывает лист , но в дальнейшем при использование макроса , если ввести иной текст в ячейку , новый лист всё равно пытается переименовываться в изначальный текст , который был при записи макроса. Спасибо!
ОтветитьУдалитьДобрый день. Пришлите пример своей Таблицы сюда https://groups.google.com/g/contributorpw
УдалитьЭта формула автоматически не обновляется? Или она у меня не правильно работает?
ОтветитьУдалитьВам нужно вызвать эту формулу с параметром, который ссылается на обновляемый диапазон, например, на этот же лист =shinfo('Sheet1'!A:A)
УдалитьА как сделать, что бы вставлялось имя документа, а не имя листа?
ОтветитьУдалитьСамое простое
Удалитьfunction sinfo(){
return SpreadsheetApp.getActive().getName();
}
Спасибо огромное за статью! Вопрос:
УдалитьА как вставить в ячейку название файла "В-0000 от 01.01.2023", но чтобы отображалось только "В-0000"??
Может можно задать условие? Возможные варианты:
1. До первого пробела
2. Первые 6 знаков
Либо еще как то...лишь бы работало))
Вопрос не понятен. Это просто имя файла или вам нужно вставить сниппет? Попробуйте задать вопрос тут https://t.me/google_sheets_pro
Удалить