Infinite Dependent Dropdown Lists (RU voice)

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

КОМЕНТАРІ • 55

  • @arkadiyeon3877
    @arkadiyeon3877 2 роки тому +5

    Автор красава !
    Спасибо большое за информацию и текст скрипта

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

      И Вам спасибо за обратную связь!

  • @grasenkovsergei3055
    @grasenkovsergei3055 4 роки тому +5

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

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

      Здравствуйте! Очень интересный вопрос!
      Вообще, эта проблема имеет своё специальное название - "проблема гонки", и давно и успешно решена в базах данных.
      В принципе, я мог бы попытаться что-то подобное организовать и в Google Spreadsheet, но здесь существуют проблема низкого быстродействия системы. Поэтому, боюсь, что даже после изменение прав доступа к редактируемой строке, всё равно будет возможна ситуация, когда уже выполненное редактирование одного пользователя может быть отменено другим пользователем, вошедшим в систему на мгновение раньше первого. Хотя, разумеется, таких ситуаций будет существенно меньше, чем в системе без какой-либо регулировки доступа (то есть не так часто, как сейчас).

    • @IT4eachcom
      @IT4eachcom  4 роки тому +2

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

    • @Максим-о9ь5щ
      @Максим-о9ь5щ 3 роки тому +3

      @@IT4eachcom Смотри мой комментарий выше, я тебе описал, как решить эту проблему.
      Здесь вариант, лишенный описанного недостатка
      docs.google.com/spreadsheets/d/1xORWXsElNIEsjXqc-Pwick6C2oYivx55vVk0JavNgMY/edit#gid=1049760343

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

      Идея действительно хороша.
      Но в этом конкретном примере она поможет решить проблему только в том случае, если все четверо будут корректировать уже созданные ранее строки. И то, при условии, что это будут РАЗНЫЕ строки.
      Но если все четверо начнут заполнять одну и ту же строку (старую или новую - не важно), то результат будет непредсказуемым.

    • @Максим-о9ь5щ
      @Максим-о9ь5щ 3 роки тому +1

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

  • @ЕвгенийКнязев-о4б

    Здравствуйте, огромное спасибо за такие подробные видео!!
    Нужна небольшая помощь/совет, у меня выпадающий список не зависимый, но очень-очень длинный, так как это список населенных городов по стране, и там больше 20 000 строк.
    В связи с этим таблица на моменте выбора значения из списка очень глючит и долго думает.
    Могли бы подсказать каким образом лучше работать с настолько большими массивами данных, чтобы значения подтягивались быстрее и не приходилось по несколько раз обновлять таблицу?
    Буду невероятно Вам благодарен за помощь!!!

    • @IT4eachcom
      @IT4eachcom  Рік тому

      Здравствуйте, Евгений!
      Прежде всего спасибо за приятую обратную связь)
      По Вашему вопросу: электронные таблицы хороши только для небольших объёмов данных и малого числа пользователей. Однако, чем объёмнее данные и чем сложнее иерархия прав пользователей, тем дольше и хуже всё это работает на электронных таблицах.
      Универсальное решение с прицелом дальнейшее развитие - использовать базу данных (БД).
      Какую именно БД и как с ней взаимодействовать (какой интерфейс для этого использовать) зависит от специфики задачи и личных предпочтений Заказчика.
      Так что, если готовы к переменам, то с удовольствием могу Вам в этом помочь)

  • @GetangelRu
    @GetangelRu 4 роки тому +4

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

    • @IT4eachcom
      @IT4eachcom  4 роки тому +2

      АБСОЛЮТНО согласен с Вами!
      Просто для первого раза и так получилось слишком много - (34 минуты).
      В следующем видео это обязательно будет доработано.
      И не только это!

  • @ЮлянаКорнічук
    @ЮлянаКорнічук 3 роки тому +2

    Добрый день!
    Пожалуйста, подскажите, можно ли сделать так, чтобы ячейка зависела от двух умных таблиц. Т.е, пример: в ячейке В2 можно выбрать товар из умного списка А, только, при условии, что в ячейке Е3 выбрано определенное значение из умного списка Б.

  • @kirillknyazev4909
    @kirillknyazev4909 2 роки тому +1

    Тоже очень интересно.. Можно ли можно ли сделать так, чтобы выпадающий список формировался из колонки другого листа, но при условии, что в других строках того же листа стоят определенные значения? Т.е. использовать формулы с условиями для формирования списка выбора?
    Ф-ия ЕСЛИ или TEXTJOIN не работают. В случае TEXTJOIN было бы удобно подгрузить данные в "значения из списка" через запятую из массива при выполнении условия соответствия :(

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

      Здравствуйте!
      Разумеется, это возможно!

  • @Упрощённо
    @Упрощённо 2 роки тому +1

    Здравствуйте. Вопрос. Как сделать чтобы гугл не показывал над предыдущими значениями столбцов B и C красные треугольники с ошибками о несоответствии значений условиям?

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

      Здравствуйте!
      Просто смотрите дальше!
      В следующих видео есть очень простое и эффективное решение этой проблемы: отказ от ссылок и замена их массивами в формулах валидации!

  • @СветланаМедведева-ц6э

    на третьей строчке
    col = e.range.getColumn();
    выдаёт ошибку "Cannot read property 'range' of undefined (строка 3, файл Код)"
    Что это может быть?

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

      Здравствуйте!
      Очевидно Вы где-то ошиблись. Могу предложить 3 варианта решения:
      1.) Сразу же перейти на более продвинутый скрипт из следующего видео, где программа САМА всё сделает за Вас: ua-cam.com/video/e3xRFKOojyQ/v-deo.html
      Там надо всего лишь:
      - аккуратно скопипастить код;
      - не ошибиться с именем листа с данными *Data* ;
      - выбрать один пункт в пользовательском меню
      2.) Внимательно проверить имена листов, формулы и сам скрипт в том варианте, который Вы используете сейчас. А ещё лучше просто пере-создать весь файл заново.
      3.) Прислать мне на почту it4each.com@gmail.com ссылку на файл с ошибкой.
      (последний вариант предполагает оплату)

    • @СветланаМедведева-ц6э
      @СветланаМедведева-ц6э 4 роки тому

      @@IT4eachcom напишу в личку

    • @СветланаМедведева-ц6э
      @СветланаМедведева-ц6э 4 роки тому

      @@IT4eachcom вообще из следующего видео тоже все делали. Все листы правильно названы.

    • @СветланаМедведева-ц6э
      @СветланаМедведева-ц6э 4 роки тому

      даже таблица создается по нужному методу, а вот первый метон onedit не работает

    • @artemshevchuk5687
      @artemshevchuk5687 4 роки тому +3

      Была та же ошибка. Важно, чтобы номера столбцов основного листа Home совпадали с номерами вспомогательных столбцов Data, Data_2. Потому как этот номер мы определяем как раз из главного, а во вспомогательных ЭТОТ и следующий номер используем

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

    Добрий день! Подскажите почему нет редактора скриптов в инструментах?

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

      Здравствуйте!
      В новой версии редактор вынесен в Extentions (Расширения)

  • @mr.maksimich
    @mr.maksimich 3 роки тому +1

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

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

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

  • @Кир-д9б
    @Кир-д9б 2 роки тому +2

    Сейчас новая версия скрипта там не работает, нашел что можно включить старую но запускаю выдает ошибку
    TypeError: Cannot read property 'range' of undefined (строка 3, файл Code)
    Вкладки три с названиями как у вас.
    Проверка данных первый столбец на "Data" второй и третий на "Data_2" все равно дает ошибку, помогите пожалуйста

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

      Ошибка говорит о попытке извлечь данные с неизвестного листа.
      Проверьте, что главный лист действительно называется 'Home'.
      PS
      Если не поможет - попробуйте просто отладить код. Вот видео, где рассказывается, как это сделать: ua-cam.com/video/z3rZElfaRjQ/v-deo.html

    • @АсемЮсупова-ж1с
      @АсемЮсупова-ж1с 2 роки тому +1

      Такая же проблема, ничего не помогло

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

      Здравствуйте!
      Тогда рекомендую попробовать более продвинутую версию: ua-cam.com/video/MtVOiyODpv0/v-deo.html

  • @ІринаЮрченко-з8ж
    @ІринаЮрченко-з8ж 3 роки тому +1

    Доброго дня, не могу открыть "редактор скриптов" : Не удалось открыть файл.
    Проверьте правильность адреса и повторите попытку.

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

      Здравствуйте!
      Очень странное сообщение об ошибке. Я с таким никогда раньше не сталкивался.
      Скажите, а Вы точно имеете радакторские права для работы с этим гугл-документом и пытаетесть открыть редактор в браузере, на странице документа из главного меню как Tools --> Script Editor (Инструменты --> Редактор Скриптов)?

  • @ОлександрБенідовський

    Здравствуйте!
    Выдает такую ошибку: TypeError: Cannot read properties of undefined (reading 'range')
    При запуске функции onEdit
    И такую ошибку Exception: The parameters (number,null) don't match the method signature for SpreadsheetApp.Sheet.getRange.
    При запуске функции function fillColumn

    • @IT4eachcom
      @IT4eachcom  Рік тому

      Здравствуйте!
      Скорее всего ошибка вызвана неверным указанием имени листа.
      Попробуйте отдебажить этот код.
      Здесь подробная инструкция, как это сделать ua-cam.com/video/z3rZElfaRjQ/v-deo.html

    • @ОлександрБенідовський
      @ОлександрБенідовський Рік тому

      @@IT4eachcom Здравствуйте. Проблема точно не в имени листов. Отладка кода не помогла. Какие могут быть ещё варианты?

    • @IT4eachcom
      @IT4eachcom  Рік тому

      Простите, что значит "отладка кода не помогла"?

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

    Бесконечно зависимые списки в обычном 2010 Excel возможно так же настроить ??

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

      Не знаю. Я несколько лет тому назад совсем отказался от Excel. И переписал все свои программы, что были на VBA на Apps Script.
      Здесь больше возможностей, лучше огранизована многопользовательская работа, ты всегда работаешь в самой последней версии, причём делаешь это совершенно бесплатно.
      Плюс - Windows есть далеко не у всех. А значит, файл с которым ты поделился будет открыт с графическими искажениеми (иногда весьма существенными). А если, не дай бог, там ещё и макросы, то тогда уж точно этой файл нельзя будет запустить в другом месте. А гугл таблицы работают везде, включая мобильный телефон.
      К тому же 2010 офис - довольно-таки старый релиз. Даже в 16-м (последний, с которым работал) уже добавилось много чего нового.
      Переходите на Гугл spreadsheet - не пожалеете.
      Если надо, могу помочь с доработкой и переносом действующих таблиц!

  • @ЭдуардМорочоБайас
    @ЭдуардМорочоБайас 4 роки тому +1

    Выскакивает ошибка в 9-й строке! - TypeError: Cannot read property 'getLastRow' of null (рядок 9, файл "Code")

    • @IT4eachcom
      @IT4eachcom  4 роки тому +3

      Проверьте имя листа, на котором находятся данные. Если .getLastRow() выдаёт null, то скорее всего скрипт просто не нашёл нужного листа. В предыдущей строке кода его имя указано, как "Data":
      var sd = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Data");
      Соответственно, имя листа промежуточных данных должно быть "Data_2":
      var sd_2 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Data_2");
      А имя главного листа должно быть "Home":
      if(list_name=="Home") {
      В идеале (если опять появится ошибка) хорошо бы скопировать эти имена прямо из скрипта (Ctrl + C) и вставить их в названия листов (Ctrl + V). Тогда больше вероятность, что не будет ошибки ни в одном имени. (Или наоборот, имена листов вставьте в соответствующие места кода. Все эти места уже перечислены в этом комментарии)
      Кстати код одинаково хорошо работает и в старой версии и в новой (V8), поэтому ошибка точно не по этой причине.

    • @ЭдуардМорочоБайас
      @ЭдуардМорочоБайас 4 роки тому +3

      @@IT4eachcom Пушечка! Все получилось! Спасибо!!!!

    • @ЭдуардМорочоБайас
      @ЭдуардМорочоБайас 4 роки тому +3

      Еще очень нужно второе видео, потому что перемешиваются значения((
      ОООчень ждууууу!!! + 1000000 лайков

    • @IT4eachcom
      @IT4eachcom  4 роки тому +3

      Отлично!

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

    А можно то же самое, но без работы со скриптами.

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

      Здравствуйте!
      Есть готовое решение для тех, кто не очень уверенно себя чувствует со скриптами: ua-cam.com/video/MtVOiyODpv0/v-deo.html
      Здесь подробно расписано, что где взять и куда вставить, чтобы всё работало и без оглядки на скрипты!

  • @Cycuvudugi
    @Cycuvudugi 2 роки тому +1

    1 в 1 всё повторил, не работает ничего.

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

      Здравствуйте!
      Боюсь, что всё же чего-то не учли.
      Есть более продвинутая верия, которая содержит в себе проверку некоторых наиболее частых ошибок: ua-cam.com/video/MtVOiyODpv0/v-deo.html
      Плюс - в ней вообще ничего не надо настраивать: все формулы и листы создаются автоматическа!

  • @levVlasovBcn
    @levVlasovBcn 2 роки тому +1

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

    • @IT4eachcom
      @IT4eachcom  2 роки тому +1

      Здравствуйте!
      Ну да, некоторые навыки программирования здесь нужны, иначе логику действий кода понять действительно сложно.
      Но есть вариант: в следующих видео показывается, как (и где именно) можно взять готовый скрипт и вставить его в свою таблицу.

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

    только запутал чем обьяснил

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

      Жаль.. А с какого момента стало непонятно?