Google Apps Script. Урок 1: Перенос данных на другой лист, автоочистка диапазона.

Поділитися
Вставка
  • Опубліковано 13 чер 2022
  • Номер карты для финансовой поддержки проекта
    Monobank: 4441114416773727 Зарудный Игорь
    Telegram канал: t.me/google_gs_and_gds
    Telegram чат: t.me/google_sheets_GDS
    Instagram: / zarudniy_music
    На этом видео уроке мы:
    1. Напишем первый скрипт
    2. Научимся переносить данные с одного листа на другой
    3. Научимся очищать диапазон

КОМЕНТАРІ • 58

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

    Номер картки для фінансової підтримки проекту
    Monobank: 4441114416773727 Зарудний Ігор

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

    Дякую за Ваші цікаві та змістовні уроки.

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

      Радий бути корисним!) дякую за перегляд

  • @user-yh9tv2ce7p
    @user-yh9tv2ce7p 7 місяців тому

    Спасибо за скрипт и за прекрасное разъяснение.

  • @i.m_daria
    @i.m_daria 2 роки тому

    Без знання і пояснення синтаксису мови дійсно складно для розуміння. Думаю, найскладніший для мене урок порівняно з іншими. При тому, що трохи цікавилась раніше для себе HTML і CSS, але не JavaScript.

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

      Дякую за зворотній зв’язок.
      Я не вивчав взагалі основи, або синтаксис, дивився як і хто і що робить, і розумію що можно зробити з часом з роботою на різних проектах. Саме тому у уроках з Google App Script будемо просто розбирати одні з основних та найнеобхідніших скриптів.

  • @iiiujieiiinep
    @iiiujieiiinep 2 роки тому +2

    Супер, именно то что я спрашивал в телеграм чате=)) Теперь буду практиковать=) и ещё хотелось бы узнать как интегрировать кнопку запуска скрипта в саму таблицу=)
    Спасибо!

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

      Привет!
      Рад быть полезным, на следующем уроке будем работать с триггерами и отдельным блоком рассмотрим виды запуска скрипта - кнопка, checkbox, автоматические триггеры по времени

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

    Дякую за урок!!! Інфо 🔥🔥🔥

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

      Приємно це чути. Дякую за перегляд☺️

  • @user-ot6eg5ke3j
    @user-ot6eg5ke3j 2 роки тому

    Коментар для просування канала)
    Дякую!

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

      Дякую що дивитесь і за допомогу)

  • @user-dk4zo5nf8d
    @user-dk4zo5nf8d 2 роки тому +1

    Ого, ну це вже 🤯, але водночас і дуже цікаво!

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

      Дякую за зворотній зв'язок, далі ще більше буде цікавих речей.

  • @epoddubniy
    @epoddubniy 16 днів тому

    Thanks!!!!!!!

  • @volodymyrdoroshenko9987
    @volodymyrdoroshenko9987 3 місяці тому

    Дякую!

  • @iliuhahaha
    @iliuhahaha 6 місяців тому

    ❤❤❤

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

    дякую

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

      Дякую що дивишся) та дякую за підтримку проекту)

  • @user-dl9ez4bl6n
    @user-dl9ez4bl6n 2 роки тому

    Подскажите пожалуйста как сделать так что бы при воде в ячейку B2 дата и время выходило автоматически в ячейки А1

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

      Привет!
      Это необходимо делать скриптом в одном сообщении сложно объяснить. Но урок по написанию этого скрипта уже запланирован и выйдет 23 июня.

  • @user-zu3zf3cs4u
    @user-zu3zf3cs4u Рік тому

    Здравствуйте! Мне нужно чтобы перенос данных был по условию одного столбца. К пример есть у этих данных еще столбец со статусами и если статус Отгружен, то перенос строк.

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

      Добрий день, налаштуйте if або switch case

    • @user-zu3zf3cs4u
      @user-zu3zf3cs4u Рік тому

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

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

      @@user-zu3zf3cs4u у цьому відео є інформація ua-cam.com/video/bJ4oD35EmY8/v-deo.html&ab_channel=ThisisData

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

    Привіт, підкажи будь ласка, як правильно прописати, щоб при відправці гугл форми, автоматично прописувався порядковий номер замовлення? Функція SEQUENCE не підходить, тому що при видаленні строки все злітає. Дякую

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

      А там впринципі все буду злітати. Я якщо щось роблю з формою, то лише я проміжну частину, далі просто переношу строки скриптом і оброблюю дані. Тому нажаль не підкажу, як варіант подивись на stack overflow, я думаю подібні питання там розбирали.

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

      @@this_is_data Дякую за швидку відповідь! Отримав підказку з платного пабліку, але не знаю, як це реалізувати, допоможеш?
      Выделить колонку под нумерацию номера заказа.
      Создать скрипт с кодом проставлении нумерации от предыдущего номера ячейки выше ( не путать с последней заполненной ячейки )
      Поставить скрипт на триггер - по отправке формы
      При отправлении формы, скрипт будет срабатывать и проставлять номер заказа от предыдущего.
      Но тут 👉 появляются нюансы, если удалять предыдущие заказы, нумерация сбивается.
      Тогда усложнить скрипт и делать сквозную нумерацию, выделяя под это отдельно ячейку ( по простому счётчик увеличивающий на 1 )
      Тогда нумерация не собьётся а будет только увеличиваться и присваивать номер заказа
      Так например можно накопить счётчик за год

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

      @@tiufanoff напиши у чат в ТГ t.me/google_sheets_GDS

  • @fess7150
    @fess7150 4 місяці тому

    дякую
    если название листа на кириллице, как отобразить?
    Вместо 1rTotal
    делаю
    1r('кириллица') не работает

    • @this_is_data
      @this_is_data  4 місяці тому

      Добрий день, не зрозумів запитання.
      Пишіть краще приклад в чат в Телеграм t.me/google_sheets_GDS

  • @Photodron
    @Photodron 5 місяців тому

    Привіт. Можливо підкажете як вирішити наступну задачу. Є таблиця, в ній два листа. На "Лист2" є стовпчик А з данними, з поточною датою в заголовку. На "Лист1" є таблиця з переліком дат в заголовках. Потрібно з "Лист2" скопіювати данні зі стовпчика А, на "Лист1" в стовпчик з відповідною датою. Скрипт чомусь не хоче шукати дату в форматі "dd.mm.yyyy" на "Лист1". Натомість шукає дату в форматі "Sun Feb 11 2024 00:00:00 GMT+0200 (Eastern European Standard Time). Відповідно не знаходить її, і не копіює дані. Якщо знаєте, підкажіть як пофіксити?

    • @this_is_data
      @this_is_data  5 місяців тому

      Добрий день, приводьте дату до спільного формату - Utilities.formatdate(new Date(назва Вашої зміноі), "GMT+2","dd-MM-yyyy")
      Також ще додатково раджу почитати про дату в програмуванні оскільки Ви скоріше за все пропустили базові речі, тому не ігноруйте це питання «колись потім розберусь» як показує практика не працює, на прикладі котрий я дам вище можете розібратись самостійно, що за що відповідає)

  • @user-ze2sl3we4c
    @user-ze2sl3we4c 2 роки тому

    а де ссилка на цю таблицю, з якою можна теж протестити даний скрипт і працювати на наступному відеоуроці??

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

      Добрий день!
      Просто створіть нову) ця вже декілька разів змінилась - саме скрипт)

  • @user-pe2zj2xb1m
    @user-pe2zj2xb1m Рік тому

    Доброго времени суток, как скопировать с формулой и с границами?

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

      Зробіть дві дії:
      1. CTRL+C - що копіюєте - CTRL+V - куди вставляєте
      1. CTRL+C - що копіюєте - CTRL+A - куди вставляєте

    • @user-pe2zj2xb1m
      @user-pe2zj2xb1m Рік тому

      @@this_is_data Спасибо, я забыл написать в что как 'то в скрипте делается.

    • @user-pe2zj2xb1m
      @user-pe2zj2xb1m Рік тому

      @@this_is_data Разрешите я вам в телегу обращусь?

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

      @@user-pe2zj2xb1m зрозумів, чесно кажучі не пам’ятаю, перегляньте технічну документацію, здається це DataValitation може інше, не пам’ятаю

    • @user-pe2zj2xb1m
      @user-pe2zj2xb1m Рік тому

      @@this_is_data Хорошо спасибо, придется как ни будь самому сделать) А так, хотел договориться)

  • @vrto7551
    @vrto7551 6 місяців тому

    А де можна скачати цей скрипт?

    • @this_is_data
      @this_is_data  6 місяців тому

      Все просто - пишемо ручками)

    • @vrto7551
      @vrto7551 6 місяців тому

      @@this_is_data та написав по скрину але якась помилка. Лiпше в опис додати ссилку на гугл шит

    • @this_is_data
      @this_is_data  6 місяців тому +1

      @@vrto7551 я також так думав коли навчався)

  • @i.m_daria
    @i.m_daria 2 роки тому

    Ввела:
    "function SAVED(){
    let ss = SpreadsheetApp.getActiveSpreadsheet()
    let sTotal = ss.getSheetByName(`Total`)
    let IrTotal = sTotal.getLastRow()
    let totalRange = ssTotal.getRange(`A2:D`).getValues(
    Logger.log(IrTotal)
    }"
    Натиснула "Зберегти", висвітило: "Синтаксична помилка: SyntaxError: missing ) after argument list (рядок 6, файл Код.gs)".
    Не розумію в чому причина.

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

      Привіт.
      Закрий дужку після GetValues()

    • @i.m_daria
      @i.m_daria 2 роки тому

      @@this_is_data дякую)

  • @cthutq00777
    @cthutq00777 Рік тому +1

    Добрий вечір, потрібна Ваша допомога:
    function SEVED() {
    let ss = SpreadsheetApp.getActiveSpreadsheet()
    let sTotal = ss.getSheetByName('Total')
    let lrTotal = sTotal.getLastRow()
    let totalRange = sTotal.getRange('A2:D'+lrTotal).getValues()
    let sArchive = ss.getSheetByName('Archive')
    let lrArchive = sArchive.getLastRow()
    sArchive.getRange(lrArchive+1,1,totalRange.length.totalRange[0].length).setValue(totalRange)
    Logger.log(lrArchive+1)
    При натисканні виконати видає таку помилку:
    Журнал выполнения
    22:35:02 Примечание Выполнение начато
    22:35:03 Ошибка
    TypeError: Cannot read property '0' of undefined
    SEVED @ SEVED.gs:9

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

      Добрий ранок.
      Дивіться на останню строчку - це і вказано у помилці що Ви отримали SEVED.gs:9:
      1. totalRange.length між ними має бути кома у вас точка totalRange[0].length
      2. коли вставляєте дані Setvalue в Вашому випадку не підходить, необхідно використовувати setValues
      Ось коректний запис:
      sArchive.getRange(lrArchive+1,1,totalRange.length,totalRange[0].length).setValues(totalRange)

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

      @@this_is_data Ура все запрацювало, дякую Вам за допомогу

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

      @@cthutq00777 радий допомогти) підписуйтесь на канал, далі буде багато цікавої інформації)