@Kusmich

Как получить и записать в ячейку все совпавшие элементы из столбца гугл таблицы?

Необходимо как то выполнить поиск в столбце с названием "NAME", по строке которая содержиться в столбце с названием "SEORCH_VALUE" , и получив найденые элменты нужно взять данные из поля которые соответсвуют найденому элементу в столбце "CODE".

Пример с результатом

5d57f1f77f443184805597.png

Из примера видно что поисковое слово "YABLOCO" встречаеться 3 раза в столбце "NAME" и соответствует кодам 1,11,16
котрые нужно записать в стобец "RESULT" . Тоже самое и для поисковой фразы "ANANAS" , которую мы нашли 4 раза,
и соответствие кодам 5,10,15,20 записали в столбец "RESULT". Аналогично и для остальных поисковых фраз стобца "SEORCH_VALUE".

Сам пример по ссыылке :

https://docs.google.com/spreadsheets/d/11pc3HTnX84...

Какие формулы или комбинации формул использовать для того, чтоб выполнить подобный поиск ?
  • Вопрос задан
  • 256 просмотров
Решения вопроса 2
Volounteer
@Volounteer
Формула:

=JOIN(",";FILTER($C$2:$C$23;$B$2:$B$23=A2))
Ответ написан
Комментировать
dollar
@dollar
Делай добро и бросай его в воду.
  1. Выберите пункт меню Инструменты -> Редактор скриптов.
  2. В появившийся редактор скопируйте следующий код:
    Код
    function TOSTER(input) {
      var first = input[0];
      var s  = "";
      var col_search = -1;
      var col_name = -1;
      var col_code = -1;
      var x,y;
      for (x=0;x < first.length; x++) {
        if (first[x] == 'SEORCH_VALUE') col_search = x;
        else if (first[x] == 'NAME') col_name = x;
        else if (first[x] == 'CODE') col_code = x;
      }
      if (col_search === -1) return "Ошибка! Нет колонки с шаблонами поиска.";
      if (col_name === -1) return "Ошибка! Нет колонки со значениями.";
      if (col_code === -1) return "Ошибка! Нет колонки с кодами значений.";
      var table = [['RESULT']];
      for (y=1; y < input.length; y++) {
        var search_text = input[y][col_search];
        if (!search_text || search_text === "") continue;
        var result = "";
        for (var yy=1; yy<input.length; yy++) {
          if (search_text == input[yy][col_name]) { //Совпадение
            if (result !== "") result += ", ";
            var code = input[yy][col_code];
            result += code;
          }
        }
        if (result === "") result = "Not found.";
        table[y] = [result];
      }
      return table;
    }

  3. В любом месте страницы вставьте формулу =TOSTER(A1:C23)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
dimonchik2013
@dimonchik2013
non progredi est regredi
начните с FIND
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы