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

Поделиться
HTML-код
  • Опубликовано: 5 дек 2024

Комментарии • 49

  • @stmsolution
    @stmsolution  4 года назад +1

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

    • @ArtDir
      @ArtDir 4 года назад

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

  • @alxnovoros3452
    @alxnovoros3452 4 года назад +4

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

  • @ЕвгенийВасильев-щ7в

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

  • @Yogsvet
    @Yogsvet 8 месяцев назад +2

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

  • @helmutrudge2014
    @helmutrudge2014 4 года назад +1

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

    • @stmsolution
      @stmsolution  4 года назад

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

    • @helmutrudge2014
      @helmutrudge2014 4 года назад

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

    • @Yogsvet
      @Yogsvet 8 месяцев назад

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

  • @DenysoftRu
    @DenysoftRu 4 года назад +1

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

    • @stmsolution
      @stmsolution  4 года назад +1

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

    • @DenysoftRu
      @DenysoftRu 4 года назад

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

  • @Frentsel
    @Frentsel 4 года назад

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

    • @mishko747
      @mishko747 3 года назад

      contains is not a function(

  • @Nabunagi1
    @Nabunagi1 2 года назад

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

  • @kirundelkirundel613
    @kirundelkirundel613 4 года назад +1

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

  • @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)
      });
      }
      Можно задать другое условие вместо =="", например, =="Готово"
      Но! это не то же самое, как если скрывать строчки фильтром. Это схлопывание строк.

  • @кичькин
    @кичькин 4 года назад

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

    • @stmsolution
      @stmsolution  4 года назад

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

  • @юрийВеретнов-н4з
    @юрийВеретнов-н4з 4 года назад

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

    • @stmsolution
      @stmsolution  4 года назад +1

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

    • @technowanderer
      @technowanderer 3 года назад

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

  • @vladgolyb2203
    @vladgolyb2203 3 года назад

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

    • @stmsolution
      @stmsolution  3 года назад

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

  • @АнтонДементьев-с8ь

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

    • @Yogsvet
      @Yogsvet 8 месяцев назад

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

  • @ondasynmurat
    @ondasynmurat 3 года назад

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

  • @ТатьянаЛяшецкая-й8й

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

    • @stmsolution
      @stmsolution  4 года назад

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

    • @ТатьянаЛяшецкая-й8й
      @ТатьянаЛяшецкая-й8й 4 года назад

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

    • @ТатьянаЛяшецкая-й8й
      @ТатьянаЛяшецкая-й8й 4 года назад

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

  • @alexs.2173
    @alexs.2173 3 года назад

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

    • @stmsolution
      @stmsolution  3 года назад +1

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

    • @loki5282
      @loki5282 3 года назад

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

  • @naokinakano7361
    @naokinakano7361 3 года назад

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

    • @stmsolution
      @stmsolution  3 года назад

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

  • @alexsb1229
    @alexsb1229 3 года назад

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

    • @stmsolution
      @stmsolution  3 года назад +1

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

    • @alexsb1229
      @alexsb1229 3 года назад

      @@stmsolution спасибо

  • @igor_scherbakov
    @igor_scherbakov 3 года назад

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

    • @stmsolution
      @stmsolution  3 года назад

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

  • @ТамараРодюк-ъ1х
    @ТамараРодюк-ъ1х 4 года назад

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

    • @stmsolution
      @stmsolution  4 года назад

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

    • @Fantomstudio-k6r
      @Fantomstudio-k6r 4 года назад

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

  • @ak_kot
    @ak_kot 3 года назад

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

  • @ЛитвинЛюбомир-р1ч
    @ЛитвинЛюбомир-р1ч 4 года назад +1

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