Как получить все подстроки, используя список ключевых слов - PullRequest
0 голосов
/ 09 января 2019

Я использую скрипт в Google Sheets для поиска строки в ячейке, чтобы определить, есть ли в строке какое-либо из моих ключевых слов. Если в строке есть ключевое слово, я хочу добавить его к результату, а затем отобразить все ключевые слова, найденные в строке.

В основном это работает, но я обнаружил, что пропущено первое ключевое слово в каждой строке поиска. Есть предложения?

function findKeyWordsInString(keywordRange, searchString)
{
  var result = "";

  // Loop through the rows in keywordRange
  for (var row = 0; row < keywordRange.length; row++)
  {
    // Loop through the columns in keywordRange
    for (var col = 0; col < keywordRange[row].length; col++)
    {
      var keyword = keywordRange[row][col];

      if (keyword != null && keyword != "")
      {
        // Found a non-null, non blank value, check if it exists in the searchString
        if (searchString.indexOf(keyword) > 0)
        {
          result = result + keyword + ", ";
        }
      }
    } 
  } 

  if (result == "")
  {
    result = "-";
  }
  else
  {
    result = result.substr(0, result.length - 2);
  }

  return (result);
}

Моя таблица содержит ключевые слова в столбце A и строки поиска в столбце C.

Вот что я использую для вызова функции:

=findKeyWordsInString(A2:A, C3)

C3 содержит:

Accomplishment, Awareness, Credibility, Seriousness, Attentiveness

Правильный ответ должен быть:

Accomplishment, Awareness, Credibility, Attentiveness

Фактический результат:

Attentiveness, Awareness, Credibility

Accomplishment отсутствует

...