如何通过命名范围内的验证在新列中设置值?

问题描述 投票:0回答:1

跟随previous question

我想通过在下一列中添加标签来对文本条目进行分类。

我可以使用正则表达式来完成,但是编写所有类似这样的条件将花费太多时间:

 if(String(data[i][0]).match(/acme|brooshire|dillons|target|heb|costco/gi))
      {
         labValues[i][0]='Supermarket';
    }

相反,我创建了一个具有所有商店名称的命名列表(在另一张纸中。)>

如果条目与列表中的术语匹配,则下一列设置为“ Supermarket

”。

我在下面使用此脚本...没有错误,但是执行时什么也没有发生!

 function tagStore() {
 var sheet = SpreadsheetApp.getActiveSheet();
 var range = sheet.getRange('A2:A655')
 var store = range.getValues();
 var tag = sheet.getRange('B2:B655');
 var tagvalues= tag.getValues();
 var storeList= SpreadsheetApp.getActive().getRangeByName("store_list");

  for (var i = 0; i<store.length; i++) 
  {
      if(String(store[i][0]).match(storeList))
      {
         tagvalues[i][0]='Supermarket';
      }
      }
  tag.setValues(tagvalues);  
}

编辑:

使用正则表达式很重要,因为“商店”值与“ store_list”值并不完全相同。

Store Values : ["Acme Store", "HEB PLaza", "Dillons Group"...]

Store_List : [acme, heb, dillons...]

在上一个问题之后,我想通过在下一列中添加标签来对文本条目进行分类。我可以使用正则表达式来做,但是编写所有条件(如:if(String(...

javascript google-apps-script google-sheets-macros
1个回答
1
投票

而不是尝试使用regEx方法,而是通过将范围作为列表检索,这是一种更直接的方法。

© www.soinside.com 2019 - 2024. All rights reserved.