Список листов Таблицы

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


Существует несколько дополнений и примеров скриптов, которые решают вопросы "сквозной суммы" или, как еще говорят "3D" массивов. Все они в основном специализированы и не позволяют сделать главного - получить список листов.
Если читатель не знаком со скриптами Google Apps Script, то это хороший повод попробовать. Как создать скрипт и добавить код, описано в Документе Google Apps Script. Начало. Нужны они вам или нет?
Идея заключается в том, чтобы получить список листов Таблицы и на основе этого списка создать формулу. Т.е. динамики будет мало, будет много ручной работы, но способ, в отстствии чего-либо другого, вполне пригодный.
Во-первых, необходимо в текущую Таблицу в редавтор скриптов добавить и сохранить следующий код: Согласен, немного отталкивает, и к этим вещам необходимо привыкнуть. Надеюсь, что не навсегда ;-)
Во-вторых, необходимо выбрать лист, который будет использоваться для построения формул. Чтобы получить список листов достаточно ввести формулу:
=СПИСОКЛИСТОВ()
Результат:
Список всех листов
Строка для формулы
Строка для формулы с исключениями
Применение формулы
Sheet5
Sheet6
Sheet7
Sheet8
Список листов
О Таблице
Чтобы получить строку из списка листов, пригодную для вставки в формулу, например, SUM(), можно сделать так:
=СПИСОКЛИСТОВ("A3")
Результат:
'Список всех листов'!A3;'Строка для формулы'!A3;'Строка для формулы с исключениями'!A3;'Применение формулы'!A3;'Sheet5'!A3;'Sheet6'!A3;'Sheet7'!A3;'Sheet8'!A3;'Список листов'!A3;'О Таблице'!A3
Теперь строку, которую вернула эта функция, возможно добавить в формулу и использовать в Таблице.Например, Результат:
=SUM('Список всех листов'!A3;'Строка для формулы'!A3;'Строка для формулы с исключениями'!A3;'Применение формулы'!A3;'Sheet5'!A3;'Sheet6'!A3;'Sheet7'!A3;'Sheet8'!A3;'Список листов'!A3;'О Таблице'!A3)
Возможно создать список, исключив некоторые листы:
=СПИСОКЛИСТОВ("A3";"Лист1,Список листов,Sheet1")
Необходимо добавить незначащий диапазон для того, чтобы функция пересчитывалась:
=СПИСОКЛИСТОВ("A3";"Лист1,Список листов,Sheet1";A:Z)
С результатом работы можно ознакомиться в Таблице Список листов [gdriveru.blogspot.ru][sheetslist]
Данный метод обладает рядом существенных недостатков. Но в определенных случаях лучше использовать инструмент построения формул, чкм более изощренные и сложные подходы.
Другой вариант получения сквозной суммы обсуждается тут.

Популярные сообщения