Связянные выпадающите списки в таблицах Google. Способ 3 Скрипт

Поділитися
Вставка
  • Опубліковано 17 жов 2024

КОМЕНТАРІ • 108

  • @doconomist
    @doconomist  3 роки тому +1

    ⚠️ Эта версия более не актуальна.
    Пожалуйста, смотрите новое видео о выпадающих списках:
    👀 ua-cam.com/video/GnbLu5AOljQ/v-deo.html

  • @dmitriyborisov_hitsen
    @dmitriyborisov_hitsen 4 роки тому +1

    Очень долго искал, наконец-то нашел то, что искал, спасибо!

  • @ЕкатеринаУльянова-ж9в

    Шикарный скрипт. Суперпонятное видео. Ты очень крутой

  • @Kirill_Ku
    @Kirill_Ku 4 роки тому +1

    А если нужно сделать два таких для разных листов? Если создаю копию всех листов и скрипта, то все равно работает только один. Проверил несколько раз, как это можно починить?

  • @pkb_market
    @pkb_market 4 роки тому

    Огромное спасибо! Это лучшее, что нашел за сутки поисков и это работает))

  • @officialstart
    @officialstart 4 роки тому

    И если в ваш пример добавить новую строчку между уже заполненными данными, код будет там так же работать? Или надо будет его заново нажать чтобы он сработал ?

  • @Max0vo
    @Max0vo 2 роки тому

    Спасибо, очень долго искал эту информацию, вы очень помогли! ☺

  • @Pluha_UA
    @Pluha_UA 4 роки тому

    Спасибо огромное! Так и есть - всё АРХИпросто (как сказано в видео)! Всё работает!

  • @formablack5051
    @formablack5051 4 роки тому +1

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

    • @maxmakhrov7867
      @maxmakhrov7867 4 роки тому

      Добрый день, Ольга!
      Пожалуйста, попробуйте сделать как в примере:
      docs.google.com/spreadsheets/d/19tHKSMuEGeeyZPduRJDahgf8--KUKNue7I-w06GZ9yg/copy
      Вот ссылка на последнюю версию скрипта:
      gist.github.com/Max-Makhrov/060c21da4f280b6faac82337dadb16e5
      Там через одну функцию запускается дважды механизм списков. То есть основной код нужен только один раз, но код запуска нужно повторить столько раз, сколько у вас списков в таблице.

  • @Mikel_dead
    @Mikel_dead 4 роки тому +1

    Добрый день, подскажите где в коде можно поправить условие, если в каком либо уровне у родителя нет наследника, чтобы удалял предыдущее значение. А так он сохраняет предыдущее значение родителя. Спасибо

    • @cooltables
      @cooltables 4 роки тому

      Добрый день!
      Это возможно, но я не возьмусь за доработку, функция редко бывает востребована

  • @officialstart
    @officialstart 4 роки тому

    Здравствуйте. Подскажите пожалуйста. Записал макрос вручную с помощью вкладки инструменты. Теперь когда я нажимаю выполнить, он показывает все действия которые я делал при записи. Как сделать так чтобы не видно было как выполняется макрос? Спасибо

  • @ЕвгенияРассоха
    @ЕвгенияРассоха 5 років тому +1

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

  • @ЕвгенияРемезова-о4к
    @ЕвгенияРемезова-о4к 5 років тому +2

    Спасибо, все работает отлично!!!

  • @ElenaSagan-z7r
    @ElenaSagan-z7r 4 роки тому

    Здравствуйте, подскажите будет ли работать этот скрипт с данными на 9000 тыс строк? У меня есть другой скрипт, так вот когда меньше данных(строк 200) - работает , только загружаешь полную базу ничего не происходит... Имеет ли это значение?

    • @cooltables
      @cooltables 4 роки тому

      Один уровень списка работает с 500 значениями.
      Если ваши списки содержат только 2 уровня, попробуйте способ без скриптов, который мне предложил Виталий Крюков
      в комментарии
      docs.google.com/spreadsheets/d/1mF5R1L8H1zxG9lZr6AjZu_vCgZgbid_ts8YwDmwhTxw/copy

  • @egor_sidorkin
    @egor_sidorkin 2 роки тому

    Всем привет. Работаю с данной таблицей "Связанные выпадающие списки Google №3.1 Макс Махров" подскажите мне нужно, что бы в последних двух столбцах были цифры. Там есть некоторые строчки с подобными функциями, но не могу понять как их расширить на другие строчки. Кто знает?

  • @ОксанаСмирнова-ы3т
    @ОксанаСмирнова-ы3т 4 роки тому +1

    Огромное спасибо! Скажите, пожалуйста, а можно ли сделать 5-6 уровень списка?

    • @cooltables
      @cooltables 4 роки тому

      Оксана, спасибо за комментарий! Можно 1) Добавьте уровни на лист с данными 2) В настройках тоже их укажите

  • @PROROK8888
    @PROROK8888 4 роки тому +1

    У меня не работает. Как тебе можно написать в личку?

  • @gibridstika
    @gibridstika 5 років тому

    Максим, как сделать так, чтобы формула в столбце "D" появилась и считала результат. Она ведь автоматически так появляется. Я скопировал ваш код и подстроил поля как на вешем примере. Ничего не выходит (

    • @doconomist
      @doconomist  5 років тому

      Привет! Нужно столбец D исключить из выпадающих списков потому что списки перепишут любую функцию, они работают только со значениями. Функцию в D нужно прописать самомтоятельно.

  • @АндрейБерилло-и7ь
    @АндрейБерилло-и7ь 7 років тому

    Добрый день! Огромное спасибо за видео! Очень помогло.

    • @cooltables
      @cooltables 7 років тому

      Добрый день! На почту пришел вопрос:
      : Если диапазон значений больше 1000 для выпадающего списка, то он отказывается их читать((( что делать?
      К сожалению, скрипт читает максимум 500 значений. Это ограничение от Гугла, я не могу его решить. Вариант -- только переписать скрипт полностью на другой логике: брать значения для списков с листа, а не из скрипта, как это сделано у меня

  • @АндрійВасільєв-л4ъ
    @АндрійВасільєв-л4ъ 6 років тому

    Добрый день. Решение моей проблемы супер, есть еще вопрос. Можно ли сделать чтобы проверочные столбики были не по порядку?

    • @doconomist
      @doconomist  6 років тому

      Андрей Васильев
      Добрый день, можно, пожалуйста напишите на почту makhrov.max@gmail.com, дам ссылку. С мобильного неудобно искать..

  • @konstantinshipelenko2544
    @konstantinshipelenko2544 7 років тому

    Доброго дня. Нет возможности скачать файл с примерами, может нужно перезалить файлы ?

  • @testtestovich8755
    @testtestovich8755 7 років тому +1

    Спасибо! очень полезное видео!!!

  • @АнастасияМукомолова-л2е

    Спасибо!!!! Работает!)

  • @АлександрТеплов-ы3ь

    Максим,а как сделать выбор нескольких значений в одну ячейку из выпадающего списка? Чтобы как то через запятую перечислялись

    • @doconomist
      @doconomist  8 років тому

      +Александр Теплов
      Можно, правда это уже тема другого видео. Можете посмотреть этот пример: docs.google.com/spreadsheets/d/19P_5sHJc7MElF9cT5ufZiMaae86zlw1P2oZ0nus8w_w/edit?usp=sharing

    • @АлександрТеплов-ы3ь
      @АлександрТеплов-ы3ь 8 років тому

      +Макс Махров Спасибо огромное, возьму за основу! Подписываюсь на канал!

  • @helenshepel
    @helenshepel 6 років тому

    Подскажите можно ли сделать связанный выпадающий список, но только с картинками ?

    • @doconomist
      @doconomist  6 років тому

      Helen Shepel, спасибо за вопрос! Напрямую это сделать нельзя, потому что в списке может появиться только простой текст.
      Можно сделать список из ключей и подтянуть картинки формулами: =vlookup(key; images; 2;)

  • @МурадХалназаров
    @МурадХалназаров 3 роки тому

    Добрый вечер. выдает такую ошибку
    TypeError: Cannot read property 'source' of undefined
    SmartDataValidation @ SmartDw.gs:66
    onEdit @ SmartDw.gs:21

    • @МурадХалназаров
      @МурадХалназаров 3 роки тому

      не могли бы вы подсказать, как решить проблему. Очень нужно

    • @maxmakhrov7867
      @maxmakhrov7867 3 роки тому

      @@МурадХалназаров добрый день, Скрипт onEdit -- это триггер, функция сработает сама, ее не надо запускать из скрипта. Достаточно добавить код в редактор, сохранить проект, и все.

  • @PROROK8888
    @PROROK8888 4 роки тому

    Как с вами связаться лично? Не могу разобраться с многоуровневыми списками

    • @doconomist
      @doconomist  4 роки тому

      Добрый день! Пожалуйста, задайте вопрос в комментарии здесь, если он касается темы видео.
      Вот ссылка на копию файла с примером
      docs.google.com/spreadsheets/d/1Gox18whzWO4PvT9cMR5tLjr1OKvMpY5ESUK9u4FLIis/copy
      Обращайтесь личто: makhrov.max@gmail.com

  • @dan0nqa
    @dan0nqa 4 роки тому

    Спасибо, всё работает!

  • @timonrulez
    @timonrulez 5 років тому

    Привет! При запуске скрипта появляется ошибка и не знаю, что с этим делать((
    TypeError: Не удается прочитать свойство "source" объекта undefined. (строка 37, файл SmartDw)

  • @БойлерМаркет
    @БойлерМаркет 7 років тому

    Максим, подскажите, у меня в четвертом столбике выбивает ошибку "В ячейке K3 нарушены правила проверки данных. Укажите одно из следующих значений: #N/A." как это можно исправить?

    • @doconomist
      @doconomist  6 років тому

      Добрый день.
      Не могу точно сказать, причин может быть много. Поделитесь примером файла с ошибкой.

  • @ВиталийИсаев-п7б
    @ВиталийИсаев-п7б 8 років тому +2

    Максим, спасибо вам помогло. А есть у вас решение как сделать авто-заполнения из справочника в вкладке способ3??? К примеру при совпадении 2 или 3 позиций и уникального значения в справочнике в 5 столбце к примеру написано 1000 чел. чтобы автоматом проставлял в вкладке способ3 в 5 столбике напротив этих совпадений.

    • @doconomist
      @doconomist  8 років тому

      +Виталий Исаев
      Хочу уточнить вопрос. Может, объясните в рамках данного примера. На сколько я понял, нужно в следующем уровне матрешки вводить значение автоматически, если оно единственно возможное, например, если в Италии других городов, кроме Рима, не предусмотрено, то при выборе Италии автоматически бы выбирался Рим. Я правильно вас понял?

    • @ВиталийИсаев-п7б
      @ВиталийИсаев-п7б 8 років тому

      +Макс Махров да верно

    • @doconomist
      @doconomist  8 років тому

      +Виталий Исаев
      Попробуйте этот пример:
      docs.google.com/spreadsheets/d/1vN_ilDsiRqWxra7H1JzaaWYs_x2SHIC7SfSITk3DviU/edit?usp=sharing

    • @ВиталийИсаев-п7б
      @ВиталийИсаев-п7б 8 років тому

      +Макс Махров Да правильно. А как он это делает? Срипте прописали?

    • @doconomist
      @doconomist  8 років тому

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

  • @MrBarbos1984
    @MrBarbos1984 5 років тому

    Здравствуйте. Все что описано работает, но когда я создал следующие списки по той же схеме на 2й вкладке, она почему-то подтягивает все данные с первой вкладки... не пойму что не так.

    • @doconomist
      @doconomist  5 років тому

      Добрый день!
      Я добавил в описание ссылку на последнюю версию скрипта. Там рабочий пример с 2-мя списками. Пожалуйста, попробуйте.

  • @ДимаБондаренко-л5к
    @ДимаБондаренко-л5к 6 років тому

    Добрый день, а подскажите как сделать не на 4 колонки а на больше(у вас Планета Континент Страна Город), а мне надо значительно больше, можно ли в коде увеличить это ? и как автозаполнение которое само заполняется в колонке F (=unique(filter(D2:D38;A2:A38="Tatooine";B2:B38="Miscam";C2:C38="Cartrie"))) перенести в более укромное место? Заранее спасибо

    • @ДимаБондаренко-л5к
      @ДимаБондаренко-л5к 6 років тому +1

      пардон, затупил, уже разобрался с первой половиной вопроса а вторая еще в силе, как (=unique(filter(D2:D38;A2:A38="Tatooine";B2:B38="Miscam";C2:C38="Cartrie"))) перенести в более укромное место? Заранее спасибо

    • @doconomist
      @doconomist  5 років тому

      @@ДимаБондаренко-л5к
      Дима, спасибо за вопрос! Во-первых, пожалуйста, попробуйте последнюю версию скрипта: gist.github.com/Max-Makhrov/060c21da4f280b6faac82337dadb16e5
      Строка 123 кода, меняйте var KudaCol = NumOfLevels + 2;
      Число 2 в этой строке определяет отступ в колонках от последнего уровня списков, куда будет записана формула. Можно поставить 10, например, чтобы формула была правее.
      На другой лист пока не могу спрятать формулу, на это требуется доработка

  • @ArchyBarouski
    @ArchyBarouski 8 років тому

    Максим здравствуйте!
    Работа скрипта не отрабатывает:
    TypeError: Не удается прочитать свойство "source" объекта undefined. (строка 37, файл SmartDw
    prntscr.com/cx1fpm
    подскажите в чем проблема пожалуйста?

    • @Frolovdu
      @Frolovdu 8 років тому

      Та же проблема!

    • @doconomist
      @doconomist  8 років тому

      Скрипт нельзя запустить через редактор скриптов. Ошибка говорит: нет такого объекта Event. Скрипт, предложенный в файле работает через триггер onEdit, который запускается сам при изменении листа в файле.

    • @Frolovdu
      @Frolovdu 8 років тому

      Со всем разобрался! Все отлично работает! Благодарю!))

    • @АнастасияРакчеева-з9ж
      @АнастасияРакчеева-з9ж 5 років тому

      @@doconomist , все равно на 62 строке спотыкается, и ему не нравится свойство ""source" - TypeError: Не удается прочитать свойство "source" объекта undefined. (строка 62, файл Типы)

  • @Smolko72
    @Smolko72 6 років тому

    Вот это реально круто, в сравнении со Способом 1!
    Подскажите, как поправить скрипт, чтобы для неверных данных показывалось предупреждение, а не стоял запрета на ввод неверных данных. Бывают случаи, когда надо что-то ввести вручную, не из заготовленного справочника.

    • @doconomist
      @doconomist  5 років тому +1

      Хороший вопрос! Меняйте строку 309 в коде:
      .setAllowInvalid(false)
      Меняйте false на true чтобы разрешить ввод неправильных значений.

  • @АнастасияРакчеева-з9ж

    При запуске скрипта 62 строке спотыкается, говорит что свойство "source" не может прочесть - prnt.sc/oc1n82

  • @АлексейЛуговский-ч7к

    Отлично! Все работает! Но есть одно но - после того как я заполнил свою итоговую таблицу - мне пришлось не просто в данные добавить строчки, а видоизменить те, которые уже были внесены, и после того, как я отредактировал данные - у меня в итоговой таблице не показало ни ошибку, что таких данных нет - и даже больше, чтобы по новой мне изменить допустим только 3 подуровень (где поменялись данные), мне приходиться полностью удалять строчку и вносить по новой. Можно ли это как-то допилить?

    • @doconomist
      @doconomist  6 років тому

      Алексей, спасибо за комментарий!
      К сожалению, пока обратная совместимость списков не работает т.к. это нелегко запрограммировать. Я думаю над этим вопросом. В случае если сделаю такую доработку, сделаю так же новое видео на канале.
      Так же если у вас или ваших знакомых есть опыт в программировании, буду рад помощи.

    • @АлексейЛуговский-ч7к
      @АлексейЛуговский-ч7к 6 років тому

      @@doconomist понял Вас, в любом случае спасибо за труд) буду ждать доработку!

  • @neo3704
    @neo3704 8 років тому

    А как организовать такое когда зависящие списки на разных листах имеют много значений и постоянно меняются?
    Например, Первая колонка несколько постоянных значений (как здесь Земля Татуин), вторая - все свои значения в зависимости от значений в первой берет список из первого столбика своего листа. Как приспособить скрипт?

    • @doconomist
      @doconomist  8 років тому

      +neo3704
      не вполне понял вопрос. А пример можно?

    • @neo3704
      @neo3704 8 років тому

      +Макс Махров
      docs.google.com/spreadsheets/d/1aI1Bu-i6iWBCmtNbklbUwICD1fPnVK3mV5pw43yKWRM/edit#gid=0
      На листе Выпадающие списки в столбиках D,E,F (одинаковые) должны зависеть от значения в столбике С.
      В зависимости от того что стоит в С, D,E,F (полностью идентичны списки) - подтягивают значения из листов 5 и 6
      Например в С стоит Москва значит в D,E,F впадающие списки строятся из Листа 5. А если стоит Питер D,E,F берет списки из Листа 6.

    • @neo3704
      @neo3704 8 років тому

      +Макс Махров
      Отлично! Спасибо.
      Как увеличить лимит 19 во всех 3х столбиках? В 3 столбике увеличили в 1 и 2 осталось максимально по 19 позиций?
      При большом количестве значений есть вероятность превысить лимит ячеек, думаю, формулы с листа было бы неплохо пернести на другой .

    • @doconomist
      @doconomist  8 років тому +1

      Отвечу по порядку.
      Для того, чтобы увеличить количество столбцов, необходимо залезть в скрипт. Там написано: максимальное количество столбцов 19. Меняйте, сохраняйте скрипт, и запускайте его. Информация об этом есть в видео, ссылку на которое я сбросил в прошлом ответе.
      Убрать формулы на отдельный лист -- хорошая идея. Здесь опять нужно менять скрипт. Мне для этого пришлось само тело скрипта немного доработать. Вот результат:
      docs.google.com/spreadsheets/d/1W9Bonhb0Knc9frog7s-br1zq5ZFcpPgDQdas8dfvga8/edit#gid=0

    • @neo3704
      @neo3704 8 років тому

      +Макс Махров
      Спасибо за помощь.
      Немного поюзал. На небольших объемах работает нормально, а когда вариантов стает много, скажем 50-100, а это такое же количество столбиков, и основная таблица 5000 - 6000 строк, следовательно в зависимой такое же количество строк ... Очень громоздко получается и таблица долго грузиться и не всегда успешно, да и лимит ячеек жмет...
      Было бы хорошо если бы при определенном значении , например Если выбрать Москву, выпадающий список берет только один диапазон скажем первые 100 строк столбика А с листа Москва.
      Если бы в скрипт прописать условия при каком значении (городе) берем определенный диапазон на соответствующем листе листе. Особенно если значений (городов) не так много и их количеств в принципи фиксированое, ну может когда то добавиться, но там можно и в скрипт внести изменения.

  • @magzhanraimbekov2431
    @magzhanraimbekov2431 4 роки тому

    Спасибо Макс!!! Вы посадили "дерево" в цифровой среде)) и Ваш скрипт все ещё актуален!
    я создал таблицу с вашим скриптом, но однако когда я даю доступ другим на редактирования у них раскрывается только один список, а другие не подгружается, может знаете решения? Буду оч.благодарен✊

    • @magzhanraimbekov2431
      @magzhanraimbekov2431 4 роки тому

      Проблема решена

    • @doconomist
      @doconomist  4 роки тому

      Добрый день!
      Чтобы помочь, мне нужна копия вышего файла, где у меня не будут работать списки.

  • @Smolko72
    @Smolko72 6 років тому

    Не работает, если в колонках использовать числа. Функция фильтра не понимает число в кавычках. А скрипт не проверяет формат данных и отдает формулу со значением именно в кавычках :(
    Т.е. должно быть примерно так ... F2:F22=70, тогда фильтр работает. А скрипт пишет так F2:F22="70" и формула перестает работать.

    • @doconomist
      @doconomist  5 років тому

      Спасибо за комментарий!
      С типами данных сложнее всего, потому что они отличаются не только вмежду собой, а еще отличаются в разных регионах. Я не уверен, но вам может пригодиться последняя версия скрипта: gist.github.com/Max-Makhrov/060c21da4f280b6faac82337dadb16e5

  • @siriusdiamond
    @siriusdiamond 9 років тому

    спасибо, надо будет как то переделать под справочник в отдельной таблице

  • @leragnes
    @leragnes 5 років тому +1

    Спасибо!!!

  • @SKakadu007
    @SKakadu007 8 років тому

    Есть какая-то ошибка в скрипте! Если назначить "var lcol" не 1 а какое-то другое число, например 2, то все сбивается!

    • @doconomist
      @doconomist  8 років тому

      +Виталик Скрипкарь
      Попробуйте сперва вставить столбец слева от основной таблицы, а затем изменить параметр lcol на 2. У меня получилось и все работает. Чтобы убедиться, можете еще раз скачать пример, я так его и оставил, чтобы брал вторую колонку вместо первой.

    • @SKakadu007
      @SKakadu007 8 років тому

      +Макс Махров Все равно не работает! Если ввести что-то в первый столбец, а затем во втором выбрать - то уже не будет из чего выбирать - ошибка #REF. Если заглянуть в лист "Справка" на ячейку F1 - то там скрипт подставляет значения из 1-й ячейки, что делать не должен. Возможно ошибка в скрипте на шаге №4 "Нужо определить переменные для настройки списка с даными для будущей проверки данных". Попробуйте... а может и где-то в другом месте ))

    • @doconomist
      @doconomist  8 років тому

      +Виталик Скрипкарь
      Точно! Спасибо за вашу заметку. Такие ошибки тяжело отследить на стадии проектирования скрипта. Сегодня могу не успеть поправить. Как сделаю, обязательно отвечу.

    • @SKakadu007
      @SKakadu007 8 років тому

      +Макс Махров спасибо за ответ !

    • @doconomist
      @doconomist  8 років тому

      +Виталик Скрипкарь
      Ошибка исправлена! Можно заново скачать пример с уже верным кодом.

  • @albinos2038
    @albinos2038 9 років тому

    Круто!

  • @akimovuriy
    @akimovuriy 6 років тому

    У Вас ошибка в скрипте. Вы работаете с одним и тем же листом в книге.

    • @doconomist
      @doconomist  6 років тому

      Uriy Akimov добрый день! Спасибо за замечание, пожалуйста, дайте ссылку на мой файл, исправлю..

  • @deni80s
    @deni80s 9 років тому

    спасибо!

  • @АскольдКузин
    @АскольдКузин 8 років тому

    У меня не работает скрипт, выбивает постоянно одну и туже ошибку=((((
    Скрин: yadi.sk/i/HCVLpHsapWk9H

    • @doconomist
      @doconomist  8 років тому

      +Аскольд Кузин
      такая ошибка выдается если пытаться запустить скрипт прямо из редактора. Скрипт же настроен на действия пользователя, то есть на события (Event), поэтому, чтобы запустить скрипт, нужно что-то поменять на листе в рабочей книге. И при каждом таком событии срабатывает этот скрипт.

  • @SayronYomeno
    @SayronYomeno 8 років тому

    Максим нужен очень ваш совет мой скайп SayronYomeno жду вашего звонка если вас не затруднит

    • @doconomist
      @doconomist  8 років тому

      Добрый день! Вам точно нужен звонок по скайпу? Предлагаю просто написать мне на почту makhrov.max@gmail.com

  • @АнатолийДанилов-д6в

    а сможете помочь решить нашу задачу ?? если да - напишите info@kukla-sharzh.ru - я расскажу что за задача. Спасибо!

    • @doconomist
      @doconomist  8 років тому

      +Анатолий Данилов
      пишите мне на почту makhrov.max@gmail.com

    • @АнатолийДанилов-д6в
      @АнатолийДанилов-д6в 8 років тому

      я уже забил на эту задачу , Макс ) но всё же спасибо за ответ!