создание выпадающих списков google скрипт
Создание выпадающих списков google скрипт
Приветствую, дорогие читатели нашего блога.
Данный пост является своего рода продолжением поста о том, как создавать выпадающие списки.
Сегодня поговорим о том, как создавать выпадающие списки в автоматическом режиме с помощью скрипта.
Вначале, как обычно, подготавливаем данные для выпадающего списка
Теперь пишем соответствующий скрипт
Надеюсь, комментарии помогут разобраться с данным скриптом.
К стати, источник данных для выпадающего списка (requireValueInRange) можно передать, как параметр (ссылка на диапазон с данными). Например, в другой функции вы, в зависимости от условий, получаете тот или иной диапазон и его передает в функцию, которая собственно формирует выпадающий список.
Таким образом вы можете создавать зависимые выпадающие списки!
Сфера применения скрипта может быть разнообразной.
Например, данные скрипты я применял в платной и бесплатной версиях таблицы для работы с клиентами, когда была необходимость восстанавливать проверки данных и форматирование на некоторых листах таблицы в автоматическом режиме.
Если вы используете в своей работе скрипты, то вам также может быть полезным пост с готовыми макросами/скриптами для Гугл таблицы.
Кстати, если наш сайт принес вам пользу и вы хотите сказать нам “Спасибо” и поддержать нас 🙏, то это можно сделать ЗДЕСЬ.
Упрощаем работу с Google-формами: Apps Script и выпадающее меню
Aug 23, 2020 · 5 min read
Я работаю в отделе физической безопасности одной технической компании. Для улучшения рабочих процессов я пользуюсь JavaScript в G Suite. Сам я не люблю монотонную работу, так что для меня писать скрипты, чтобы избежать повторяющихся муторных задач, — как спасательная капсула. А теперь покажу вам примеры.
За прошлый год наши операционные задачи по сотрудникам выросли практически втрое и соответственно увеличился оборот. Поэтому распорядок дежурств постоянно меняется. Почему так важно, чтобы список был обновлен? Потому что он используется в выпадающем меню более, чем 6-ти форм Google.
После создания н о вых форм ко мне в течение дня или недели ходят сотрудники и просят добавить или удалить чьи-то имена из выпадающего меню в нескольких формах. Это те самые монотонные задачи, которые я не хочу выполнять каждый раз, а делиться доступом к редактированию этих форм просто опасно из-за возможности пользовательских ошибок.
Чтобы решить, как быть в этой ситуации, я взял второй инструмент из своего любимого набора — Apps Script. Я написал скрипт, который берет список имен из главной таблицы, и когда данные в ней меняются, автоматически обновляются выпадающие меню во всех Google формах. Вот так я решил для себя задачу с оптимизацией монотонной работы.
В итоге: все, что нужно сделать моим коллегам в отделе, — это обновить один список, чтобы обновились все связанные выпадающие меню в формах.
А теперь подробно разберем весь процесс.
Первое и самое важное, про что я хочу вам рассказать, — мой любимейший инструмент, который управляет буквально всем, — поиск Google! Я открыл новое окошко и запросил “Обновить выпадающие списки при помощи Google Apps Script”. Ну или что-то подобное. Конечно же я нашел не один ресурс с подсказками.
Никто еще не добавлял скрипты для моей таблицы, так что я увидел чистый лист.
Инструмент “Выпадающий список” незаменим в Гугл Таблицах, если предстоит сбор и обработка данных. Он значительно облегчает и ускоряет весь процесс, избавляя Вас от необходимости ручного ввода повторяющихся данных. Создается такой список очень легко.
Как создать выпадающий список и как с ним работать
Ниже мы приведем две инструкции: с ручным вводом значений списка и с указанием диапазона. Первый — проще, а второй подойдет для работы с большим количеством значений.
Создание выпадающего списка
Самый простой вариант. Подойдет, чтобы быстро “собрать”, к примеру, несложную форму для опроса. Ну или любую другую форму, где не требуется обработки больших массивов данных. Сначала вы должны разобраться, как вообще создать Гугл Таблицу, а потом, как в Гугл Таблице сделать выпадающий список в одной ячейке или сразу в нескольких:
Готово. Теперь вы знаете, как создать выпадающий список в Google Таблицах.
Еще о работе с выпадающим списком
С тем, как сделать в Гугл Таблицах выпадающий список, мы разобрались. Осталось упомянуть еще несколько вариантов настроек, доступных для использования. В окне “Проверка данных”, в строке “Правила”, вы можете выбрать следующие настройки:
Обратите внимание: ячейки можно подсвечивать разными цветами (и в зависимости от содержимого в том числе. Для этого выделите ПКМ одну или несколько ячеек, выберите “Условное форматирование” и в форме справа назначьте правила выделения цветом.
Связанные выпадающие списки
В настоящий момент нет функционала, позволяющего создавать связанные выпадающие списки в Гугл Таблицах — подобно тому, как это делается в Excel. Пользователи вынуждены писать специальные скрипты и прикреплять их к таблице. Только так содержимое ячеек “ведет себя” нужным образом. Это требует определенных знаний в программировании — даже для того, чтобы взять готовый скрипт из сети и подогнать его под свои потребности.
Мы нашли один вариант, который вы, вероятно, сможете использовать, выбрав наиболее подходящий, чтобы сделать раскрывающийся связанный список в Гугл Таблицах. Скрипт выглядит так:
Что мы видим перед нажатием на “Сохранить” :
Подготовка окончена. Осталось прикрепить скрипт к таблице.
Прикрепление скрипта
Далее смотрим на результат — если что-то не устраивает, возвращаемся в редактор скриптов и подправляем в нем параметры проверки данных.
Cоветы и руководства по Google Таблицам
Мастер Google Таблиц с полезными советами и руководствами
Как сделать множественный выбор в раскрывающихся списках в Google Таблицах
Основная цель раскрывающихся списков в Google Таблицах — предлагать варианты, из которых пользователь может выбирать. Это дает пользователям четкое представление обо всех доступных параметрах, а также гарантирует, что пользователь выбирает только разрешенные элементы.
Выпадающий список также гарантирует, что будет меньше ошибок, поскольку теперь пользователь может выбирать из заранее определенного списка вместо того, чтобы вручную вводить содержимое ячейки.
Таблицы Google позволяют нам с легкостью использовать эту функцию. Всего за несколько щелчков мышью вы можете создать раскрывающийся список с одной ячейкой или заполнить всю строку или столбец раскрывающимися списками.
Однако вы заметите, что раскрывающийся список Google Таблиц по умолчанию позволяет пользователю выбрать только один элемент из списка.
Поэтому множественный выбор в раскрывающихся списках может быть весьма полезным. К сожалению, эта опция традиционно не разрешена в Google Таблицах. Вам разрешен только один вариант за раз.
Хорошая новость в том, что есть способ обойти это. Можно сделать ваш раскрывающийся список допускающим множественный выбор с помощью Google AppScript.
В этой статье я покажу вам, как создать раскрывающийся список, в котором можно выбрать несколько вариантов (как показано ниже).
Но сначала начнем с нуля.
Начнем с создания нового раскрывающегося списка из списка вариантов цвета.
Разрешение множественного выбора в раскрывающемся списке (с повторением)
В этом руководстве я буду использовать следующий набор данных элементов и создам раскрывающийся список в ячейке C1.
Чтобы создать раскрывающийся список, допускающий множественный выбор, вам нужно сделать две вещи:
Давайте подробно рассмотрим каждый из этих шагов.
Создание выпадающего списка
Предположим, у меня есть набор данных элементов, как показано ниже, и я хочу создать раскрывающийся список в ячейке C1.
Ниже приведены шаги для этого:
Теперь выпадающий список появится в выделенной ячейке (в данном примере C1). Когда вы нажмете на стрелку, вы увидите свой список опций.
Обратите внимание, что вам разрешено выбирать только один вариант за раз.
Теперь позвольте мне показать вам, как преобразовать этот раскрывающийся список (который позволяет отображать только один элемент в ячейке) в тот, который позволяет выбирать несколько элементов. А для этого вам нужно добавить скрипт функции в редактор скриптов Google Таблиц.
Добавление скрипта Google Apps для включения множественного выбора
Ниже приведен код сценария, который вам придется скопировать и вставить в редактор сценариев (шаги, указанные ниже в разделе после кода):
Ниже приведены шаги по добавлению этого кода сценария в бэкэнд Google Таблиц, чтобы раскрывающийся список, который мы создали в ячейке C1, мог позволить выбрать более одного варианта:
Теперь вернитесь к рабочему листу и попробуйте выбрать несколько вариантов в раскрывающемся списке. Например, сначала выберите Apple, а затем выберите Banana.
Вы заметите, что это занимает секунду (иногда две секунды), а затем отображаются оба выбранных элемента (разделенных запятой).
Примечание. В правом верхнем углу ячейки вы увидите красный треугольник. Это может выглядеть как ошибка (поскольку значение в ячейке не соответствует ожидаемому). Вы можете спокойно игнорировать это.
Также обратите внимание, что с помощью этого кода он позволит вам выбрать один и тот же элемент дважды. Например, если вы выберете Apple, а затем снова выберете Apple, он дважды отобразит это в ячейке.
Если вы хотите создать раскрывающийся список, который позволяет выбирать несколько вариантов без повторения, я предоставил код позже в этом руководстве.
Как работает код?
Попробуем разобраться в этом коде по частям.
Код начинается со строки
onEdit () — это специальная функция в Google Таблицах. Она также известна как обработчик событий. Эта функция запускается каждый раз при изменении вашей электронной таблицы.
Мы хотим, чтобы наш код множественного выбора запускался каждый раз, когда элемент выбирается из раскрывающегося списка, поэтому имеет смысл поместить наш код в функцию onEdit ().
Теперь AppScript передает эту функцию как объект события в качестве аргумента. Обычно объект события называется e. Этот объект события содержит информацию о инициированном событии.
Если вы знакомы с основами AppScript, вы обнаружите, что первые четыре строки довольно легко понять:
Я объявил две переменные — одну (oldValue), которая будет содержать старое значение ячейки, и другую (newValue), которая будет содержать новое значение ячейки.
Переменная activeCell будет содержать текущую активную ячейку, которая была отредактирована.
Теперь мы не хотим, чтобы код запускался каждый раз при редактировании какой-либо ячейки. Мы хотим, чтобы он запускался только при редактировании ячейки CA1 Sheet1. Поэтому мы убеждаемся в этом, используя оператор if:
Приведенный выше код проверяет номер строки и столбца активной ячейки и имя листа. Поскольку раскрывающийся список находится в ячейке C1, он проверяет, равен ли номер строки 1 или нет, а также равен ли номер столбца 3 или нет.
Код в операторе IF выполняется только при соблюдении всех этих трех условий.
Ниже приведен код, который выполняется, когда мы находимся в правой ячейке (C1 в нашем примере).
e.oldValue также является свойством объекта события, e. Это содержит предыдущее значение активной ячейки. В нашем случае это будет значение до того, как мы сделаем выпадающий выбор.
Мы хотим присвоить это переменной oldValue.
e.value — это свойство объекта события, e. В нем хранится текущее значение активной ячейки. Мы хотим присвоить это переменной newValue.
Во-первых, давайте посмотрим, что произойдет, если не выбран ни один из вариантов. В этом случае e.value будет неопределенным. Когда это происходит, мы не хотим, чтобы в ячейке A1 отображалось что-либо. Поэтому мы помещаем в ячейку пустое значение.
Это также будет иметь место, если пользователь решит удалить все предыдущие выборы и перезапустить с нуля.
Если пользователь выберет опцию, то будут выполнены строки, следующие за оператором else. Теперь мы хотим указать, что делать, если опция выбирается в первый раз из раскрывающегося списка.
Это означает, что e.oldValue не определено. Когда это происходит, мы хотим, чтобы в ячейке A1 отображался только выбранный параметр (newValue).
Наконец, мы указываем, что делать в следующий раз, когда будет выбран вариант. Это означает, что и e.value, и e.oldValue содержат определенные значения.
Как только вы наберете код, сохраните его, а затем попробуйте выбрать несколько вариантов из раскрывающегося списка. Вы увидите, что все выбранные вами параметры отображаются один за другим, разделенные запятыми.
Если вы допустили ошибку, вы всегда можете очистить ячейку и начать заново. Когда это происходит, мы хотим отобразить как предыдущие значения, так и новое выбранное значение в ячейке A1, разделенные запятыми.
Примечание. Когда вы используете приведенный выше код, он не позволит вам вернуться и отредактировать часть строки. Например, если вы хотите вручную отредактировать строку элемента или удалить ее часть, вы не сможете этого сделать. Вам придется удалить все содержимое ячеек и начать заново, если вы хотите внести какие-либо изменения.
Однако здесь есть небольшая проблема. Обратите внимание, что если вы выберете элемент более одного раза, он снова будет внесен в ваш список выбора. Другими словами, повторение разрешено. Но обычно мы этого не хотим.
Ниже я подробно рассказал, как вы можете внести изменения в свой код, чтобы элемент можно было выбрать только один раз, чтобы не было повторов.
Разрешение множественного выбора в раскрывающемся списке (без повторения)
Ниже приведен код, который позволит выбрать несколько вариантов в раскрывающемся списке без повторений.
В приведенном выше коде я снова использую в качестве примера ячейку C1 на листе Sheet1. Если раскрывающийся список находится в другой ячейке (или листе), вам необходимо соответствующим образом скорректировать код.
Приведенная ниже часть кода позволяет нам игнорировать любое повторяющееся значение в раскрывающемся списке:
Здесь функция indexof () проверяет, содержит ли строка в oldValue строку в newValue.
Если это так, то он вернет индекс строки в oldValue. В противном случае он вернет значение меньше 0.
Если вновь выбранная опция действительно существует в нашем списке, мы хотим оставить список как есть (поэтому мы заполняем ячейку C1 предыдущим значением). Если нет, то мы хотим добавить вновь выбранный параметр в список с запятой (‘,’) и отобразить его в ячейке C1.
Множественный выбор в раскрывающемся списке (весь столбец или несколько ячеек)
В приведенных выше примерах я показал вам, как получить раскрывающийся список с множественным выбором в ячейке. Но что, если вы хотите получить это для всего столбца или нескольких ячеек. Это легко сделать с помощью незначительных изменений в коде.
Если вы хотите, чтобы раскрывающийся список позволял выбрать несколько элементов во всем столбце C, вам необходимо заменить следующую строку кода:
со следующей строкой кода:
Когда вы это делаете, мы только проверяем, равен ли столбец 3 или нет. Любые ячейки, которые находятся на листе Sheet1 и в столбце 3, будут удовлетворять этому критерию IF, и любой раскрывающийся список в нем допускает множественный выбор.
Точно так же, если вы хотите, чтобы это было доступно для всего столбца C и F, используйте вместо этого следующую строку:
Вышеупомянутая строка использует условие ИЛИ в операторе IF, где проверяется, равен ли номер столбца 3 или 6. Если ячейка с раскрывающимся списком находится в столбце C или F, будет разрешен выбор нескольких элементов.
Точно так же, если вы хотите, чтобы это было включено для нескольких ячеек, вы также можете сделать это, изменив код.
Вот как вы можете включить множественный выбор в раскрывающемся списке в Google Таблицах. Хотя это недоступно в качестве встроенной функции, вы можете легко сделать это с помощью магии Google Apps Script.
Google таблицы — выпадающий список
В данной статье мы научимся делать выпадающий список в Гугл таблицах, потренируемся его применять вместе с условным форматированием, используя встроенные инструменты Google Sheets.
Для чего же нужны выпадающие списки в Гугл таблицах?
Ну, во-первых списки очень облегчают работу с большим количеством одинаковых данных, когда вам в различных колонках необходимо использовать одни и те же значения, например количество проданных товаров в разные периоды времени. Товары-то одни и те же, а вот периоды разные, вот в таком случае к нам и спешат на помощь выпадающие списки.
Во-вторых, использование списков с заранее заготовленными значениями исключают ошибки при введении одинаковых данных. И потом, когда вам однажды понадобится делать проверки данных формулами, то допущенная помарочка в слове или цифре может натворить весьма немало неприятностей в расчетах. Тогда как списки из введенных единожды правильно данных исключат подобные казусы.
Как сделать простой выпадающий список в Гугл таблицах
Чтобы реализовать выпадающий список красиво и удобно (не испортив внешний вид таблицы), мы будем использовать два листа. Для этого давайте сперва добавим второй лист как это описано тут и переименуем их, как это описано в соответствующей статье здесь.
Лист на котором будет отображаться результат я так и назвал Результат, а лист, который сразу был под названием Лист 2, я назвал Данные, на нем я размещу исходные данные.
После того как мы сделали эти простые действия, приступим к заполнению данных. Для этого перейдем на лист который мы назвали Данные и добавим некоторые данные, у меня это Ягоды, Фрукты и Овощи, расположенные по порядку в ячейках A1:A3:
Теперь перейдем на наш главный лист Результат, где мы будем делать сам выпадающий список. Поставим курсор где нам необходимо, в моем случае разницы нет и я размещу выпадающий список в ячейке A3.
Откроется вот такое контекстное меню:
В котором мы видим следующие пункты:
Все! Жмем кнопку Сохранить и наслаждаемся результатом своего труда:
Выпадающий список в Гугл таблицах с использованием условного форматирования
Сделать-то мы сделали выпадающий список, но теперь нам необходимо потренироваться как его использовать в работе.
Теперь добавим немного магии и воспользуемся условным форматированием для того, чтобы мы могли налету отличать данные которые выбраны в той или иной ячейке с выпадающим списком.
Допустим у нас есть некие данные, в нашем случае это Ягоды, Фрукты и Овощи. У вас это могут быть другие данные, но не это главное. Если у нас приличное количество выпадающих списков с различными данными, то выглядит все достаточно запутанно и вообще поди пойми где и что.
Чтобы как-то разбавить эту серую массу данных, нам потребуется инструмент условного форматирования. При помощи его мы в несколько кликов раскрасим наши товары в соответствующие цвета и нам будет значительно проще различать где какой вид продукта выбран.
Для начала выделим весь диапазон, в нашем случае это A1:C20
В открывшемся окне справа мы увидим что мы применять будем форматирование к диапазону A1:C20. Ниже в форме Форматирование ячеек выберем Текст содержит, еще ниже в поле введем, например, Фрукты. Сразу увидим, что наши ячейки, которые содержат слово Фрукты, окрасились в серый цвет — так Гугл таблицы по умолчанию окрашивают ячейки.
Но нам же надо окрасить в разные цвета разные ячейки, поэтому выберем ниже способ форматирования, а именно окрасим ячейки с фруктами, скажем, оранжевым цветом. Для этого выберем нужный цвет в форме с изображенным ведерком.
Жмем Готово, наслаждаемся свежими красками в нашей серой таблице!
Теперь повторим эти действия с другими данными, нажав на кнопку Добавить правило справа, только теперь вводим в поле не Фрукты, а Ягоды и на последнем этапе Овощи, и наблюдаем вот такую картину:
Теперь когда мы выберем нужные данные в выпадающем списке, ячейка эта будет окрашиваться в соответствующий цвет.
Вот и все, надеюсь статья была полезной. Если у вас есть еще какие-то вопросы, то пишите их в комментариях, я с удовольствием на них отвечу!