javascript - 谷歌应用脚​​本: how to search certain column for words from list and return text to another column

标签 javascript google-apps-script google-sheets

我在一列 (A) 中有产品描述,并希望根据描述中的内容在另一列 (B) 中创建标签。

我在 C1 中有一个以前的标签列表。我想将 A 列中的内容与 C1 中的内容进行比较,然后仅返回那些已匹配的单词。

因此,在下图中,已进行比较并找到匹配项并将其添加到 B 列。

enter image description here

我尝试过一些事情,但都失败了。我最初认为它可以使用一个脚本,将描述复制到 B 列,在所有单词之间添加逗号,然后搜索并替换特定的单词组合。但我意识到我必须定义数千个条件(例如不包括“is”等)

任何正确方向的指针将不胜感激。

最佳答案

我想这样就可以了。

function findingWords()
{
  var criteriaRowIndex = 1, criteriaColIndex = 2;//indexes in rngA are just row and column numbers -1
  var descriptionColIndex = 0;
  var tagsFoundColIndex = 1
  var sht = SpreadsheetApp.getActiveSheet();
  var rng = sht.getDataRange();
  var rngA = rng.getValues();
  var criteriaA = String(rngA[criteriaRowIndex][criteriaColIndex]).split(',');
  for(var i=1;i<rngA.length;i++)
  {
    var strA = String(rngA[i][descriptionColIndex]).split(' ');
    var tagA = [];
    for(var j=0;j<criteriaA.length;j++)
    {
      if(strA.indexOf(criteriaA[j]) != -1)
      {
        tagA.push(criteriaA[j]);
      }
    }
    rngA[i][tagsFoundColIndex]=tagA.join();
  }
  rng.setValues(rngA);
}

enter image description here

我添加了一些中间变量来帮助您识别行和列。但基本上,行、列从 1 开始,使用 getValues() 创建的数组中的索引从 0 开始。所以一般来说索引是行数和列数减一。

关于javascript - 谷歌应用脚​​本: how to search certain column for words from list and return text to another column,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43898762/

相关文章:

javascript - 单击按钮时返回 true 不适用于 javascript

google-apps-script - "We' 抱歉,服务器发生错误。请稍等一下,然后重试”从自定义菜单运行函数时出错

google-apps-script - 以编程方式将容器绑定(bind)脚本添加到 Google Docs 文件

google-sheets - 如何将条件格式应用于命名范围?

javascript - 通过 canvas.toDataURL 返回一个 div

javascript - 谷歌地图 APIs v3 和 IE 6

javascript - 交换 unicode 字符

google-apps-script - 如何通过 API 访问特定 View 或属性的 Google Analytics 过滤器

javascript - 仅为 Google App Script getRange 获取未过滤的值

google-apps-script - 如何在发布插件之前使用多个活跃用户测试 Google Apps 脚本?