Google Apps Script! Поиск строки с искомым значением. Трюки Google Sheets.

Поділитися
Вставка
  • Опубліковано 14 жов 2020
  • #STMSolution #Googlesheets #Googlescript
    Друзья! Сегодня я расскажу как найти строку в которой находится искомое вами значение с помощью Google Apps Script в Гугл таблицах!
    Смотрите до конца, будет интересно.
    Поддержи автора канала пальцем в верх и подпиской это для
    меня лучший стимул продолжать развиваться.
    Станьте спонсором канала, и вы получите доступ к эксклюзивным бонусам. Подробнее:
    / @stmsolution
    💰 Поддержать монетой:
    🎊 stm-solution.diaka.ua/donate
    🥇Bitcoin - bc1q5ve3p8zmcm6z9tapts6padpmnvv572tsujukad
    📲 Через кнопку "Спасибо"
    👍 Или станьте спонсором канала!
    Все уроки по Гугл таблицам в одном плейлисте - • Google таблицы. Как со...
    Помощь по гугл таблицам - пишите в ВК id8947072
    Попробуй себя в фрилансе - kwork.ru/?ref=1177685
    Или закажи разработку - kwork.ru/user/sparrow1988?ref...
    Мой паблик в Telegram - t.me/stmsolution
    Буду рад видеть вас в моей группе ВК - public150463462
    Twitter - / stm_solution
    Мой сайт stmsolution.ru
    Еще больше видео на моем канале / @stmsolution
  • Наука та технологія

КОМЕНТАРІ • 49

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

    Пишите ваши вопросы и замечания сюда! Постараюсь на все ответить!
    Если вам нравится видео, вы можете его поддержать лайком а так же, при желании, поддержать канал монетой
    🎊 stm-solution.diaka.ua/donate
    🥇Bitcoin - bc1q5ve3p8zmcm6z9tapts6padpmnvv572tsujukad
    📲 Через кнопку "Спасибо"
    👍 Или станьте спонсором канала!

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

      @STM Solution здравствуйте! Спасибо за урок! Подскажите, а как мне решить такую задачу: Есть две таблицы оплаченные и оформленные заказы. Как мне по email-ам из первой таблицы найти все строки во второй, чтобы оставить только их.

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

    Очень полезный урок. Благодаря данной функции можно обработать огромный массив данных и внести изменения в нужную строку. Лайк

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

    Крутотенюшка!

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

    Подскажите, пожалуйста, как можно найти определенную клетку по значению в начале строки ( Прим.ФИО), значению столбца (Дата) и изменить эту клетку?

  • @user-bq4lc1eh7c
    @user-bq4lc1eh7c 3 роки тому

    доброго времени суток. у меня такой вопрос. Можно ли сравнить с листа №1 и листа №2 по диапазону, найти повторяющиеся цифровые данные( артикулы) сложить их значения (находящиеся в соседнем столбце) выделить различия цветом либо другим вариантом расхождение: кол-во значений одинакового артикула в двух листах. подскажите в каком уроке это можно посмотреть, или это возможно сделать только через скрипты?? а может у вас появится снять видеоурок на эту тему??

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

      Filter, query, условное форматирование

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

    Добрый день, Станислав.
    Хорошее видео. Единственное, перепутали количество строк с количеством столбцов на последних минутах. Если можно добавьте описания вставки элемента в середину массива.
    Спасибо.

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

      Добрый, не совсем понял, что вы хотите))

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

      @@stmsolution Есть массива arr = [1, 2,3] как вставить ещё один элемент между вторым и третьим элементом? Только перебор в цикле?

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

      @@helmutrudge2014 функция splice() напрямую решает эту задачу.

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

    Добрый день, подскажите куда копать по следующей задаче:
    Лист1 содержит некую базу товаров в столбцах в том числе есть "Остаток" и "Проданные"
    Лист2 содержит ячейку с числом товара которое необходимо перевести из Остатка в Проданные. По нажатию на ссылку или кнопку данное число отнимается от значения "Остаток" на Лист1 и соответственно прибавляется к "Проданные" на тоже самое число.
    Вроде не сложная задача но не найду подходящего метода её реализации.

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

      Ведите базу данных приданого и отнимайте формулами из остатка

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

      @@stmsolution Что делать понятно, не понятно как на Листе2 при нажатии "кнопки" произвести операцию на Листе1. Пример таблицы скинул на ВК

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

    Вместо строк 12-17 можно просто написать:
    const row = findIndexRange.find(cells => cells.contains(valToFind));
    И вместо console.log(...); лучше использовать Logger.log(...);

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

      contains is not a function(

  • @user-iq4xy4kt4r
    @user-iq4xy4kt4r 3 роки тому

    Станислав, спасибо за урок !
    По такому принципу но через функцию фильтр я записываю телефонные номера и количество покупок, номер является уникальным кодом.
    Если вписывать в ячейку функции то находит номер и кол во покупок), далее запускаю скрипт и он как раз увеличивает покупку на 1 и обновляет дату покупки 🛍.
    Благодарю за ваши уроки !
    Есть вопрос
    У вас в скрипте идёт цикл- то есть перебор, скрипт в Гугл работает 360 сек, если будет больше то он прервётся и может не дать результат.
    Или здесь исключено так как массив.
    У меня сейчас база из 1050 номеров уникальных, поэтому спрашиваю. Спасибо)

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

      В данном случае максимум секунд 15 и то из за самой таблицы может быть тормоза

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

      Лист с более чем 15000 строк обрабатывает около минуты. Плюс минус 20 секунд. Зависит от гуглнастроения

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

    Спасибо, расскажите как загрузить файл на гуглдиск через собственную HTML форму(гугл скрипт)

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

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

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

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

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

      length + регулярные выражения

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

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

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

      Добрый вам нужны уроки по скриптам, там есть об этом, но смотреть надо с 1 урока что бы понять

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

    Добрый день. Создайте пожалуйста урок по созданию скрипта для того чтобы автоматически можно было скрыть сроки по условию (как пример пустая строка). Весь интернет обшарил, ничего путного найти не могу.

    • @sansanrdv
      @sansanrdv 3 роки тому +2

      function Closed_Rows() {
      var app = SpreadsheetApp.getActive().getSheetByName('Лист1');
      app.getRange('B:B').getValues().forEach(function (r, i) {
      if (r[0] == "")
      app.hideRows(i + 1)
      });
      }
      Можно задать другое условие вместо =="", например, =="Готово"
      Но! это не то же самое, как если скрывать строчки фильтром. Это схлопывание строк.

  • @alexs.2173
    @alexs.2173 3 роки тому

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

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

      В условии прописать при нахождении добавлять в массив строк и все, не ограничивать больше никакими условиями

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

      @@stmsolution Это как сделать? Можно участок кода увидеть? (:

  • @user-sp4em4qs2n
    @user-sp4em4qs2n 11 місяців тому

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

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

      const text = 'Смирнов Дмитрий Петрович 1973';
      var findtext = 'Смирнов';
      Logger.log (splitted_text = text.split(' ')); // [Смирнов, Дмитрий, Петрович, 1973]
      Logger.log (splitted_text.includes(findtext)); // TRUE

  • @user-wo1kt4hg2y
    @user-wo1kt4hg2y 3 роки тому

    Уважаемые специалисты! Подскажите пожалуйста, как найденную этим скриптом строку, можно копировать куда-либо?

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

      Так же как и вставлять в нее, то есть номер строкииу вас же есть, все, sheet.getRange(row,col).getValues() получаете в переменную и вставляйте эти данные куда хотите

    • @user-wo1kt4hg2y
      @user-wo1kt4hg2y 3 роки тому

      @@stmsolution Спасибо, попробую!

    • @user-wo1kt4hg2y
      @user-wo1kt4hg2y 3 роки тому

      @@stmsolution Не получается. Я только учусь. Сделайте пожалуйста такой урок, чтобы копировать всю строку и ее часть. Я не нашла подходящих уроков. Уверена, что он будет полезен!

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

    Подскажите, пожалуйста, как сделать, чтобы не учитывались пробелы после значений в ячейках? А то в некоторых они есть и тогда скрипт их не находит

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

      На сколько помню метод strip() изначально массив обрабатывает им

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

      @@stmsolution спасибо

  • @user-kw5lw2tk8u
    @user-kw5lw2tk8u 3 роки тому

    Как настроить Поиск решения в Гугл таблицах?

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

      Не совсем понятен ваш вопрос. Опишите какие действия вам нужны.

    • @user-id2sp8bs5p
      @user-id2sp8bs5p 3 роки тому

      Решение задач оптимизации

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

    А на Андроиде можно это сделать в приложении?

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

      Не совсем понял что нужно делать

  • @Yogsvet
    @Yogsvet 3 місяці тому +1

    Цикл по всему столбцу - это работает, но КПД - отстой.
    а) В таблице может быть 1000 пустых строк, а полезных пять. И вы будете перебирать тысячу и тратить на это время.
    б) Во-вторых фуyкция indexOf() сразу отдает вам номер строки с совпадением, если оно есть. И цикл не нужен (за исключением случаев, если мы допускаем несколько повторов в столбце)
    Цитирую. Метод indexOf() ищет в массиве указанный элемент и возвращает его индекс. Если элемент встречается в массиве несколько раз, indexOf() возвращает индекс самого первого элемента. Если элемент отсутствует в массиве, метод вернет -1

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

    ничего не понятно

  • @user-jq9se6gw7f
    @user-jq9se6gw7f 3 роки тому +1

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