在Google Spread-Sheets中查找多个值

时间:2017-04-01 17:44:23

标签: google-apps-script google-sheets google-sheets-api

我有一个大约800个VIN编号的列表,每个编号都在一个单独的单元格中。我可以并且已经创建了这些的部分列表,以便它们用逗号分隔,认为如果用逗号描述,find函数将能够突出显示多个单元格,但这不起作用。而不是一个接一个地使用复制/粘贴加上查找在第二个电子表格中找到每个VIN(这是可以理解的相当繁琐和耗时)我一直试图找到一种方法,以便我可以一次找到多个单元格。例如:123456789,234567891,345678912等,以便定位包含这些值的每个单元格。我已经尝试过Adlebits改进的电动工具搜索功能,但它没有这个功能,这让我相信唯一可行的方法就是通过脚本编辑器,如果有的话。有什么建议吗?

2 个答案:

答案 0 :(得分:0)

尝试将逗号分隔列表分成单独的单元格,然后使用条件格式设置突出显示值。看看我的例子。

https://docs.google.com/spreadsheets/d/1YBsUz96yN7rxYFjnYI94lAGPMOUS2ScHD2SW417VEeY/copy?usp=sharing

答案 1 :(得分:0)

如果您有一个包含800个葡萄酒的列表,并且您想在该列表中搜索葡萄酒列表并创建一个找到的葡萄酒的新表单,则可以执行此操作。您可以从创建的菜单中运行它。

function onOpen() {
 SpreadsheetApp.getActiveSpreadsheet().addMenu(
    'Vins', [ 
      { name: 'Find Vins', functionName: 'findVins' },
      ]);  
}
function findVins() {
  var ss=SpreadsheetApp.getActiveSpreadsheet()
  var s=ss.getSheetByName("Sheet1")//get sheet with vin list
  var lr = s.getLastRow()
    s.getRange(2, 1, lr-1, 1).clearFormat()//clear background color 
  var vinToSearch=s.getRange(2, 1, lr-1, 4).getValues()//get vin list values
  var s1=ss.getSheetByName("Sheet2")//get sheet with vins to find
  var lr1=s1.getLastRow()
  var vinToFind=s1.getRange(2, 1, lr1-1, 1).getValues()//get vins to find
  var found=[]
  for(var i=0;i<vinToFind.length;i++){
     for(var j=0;j<vinToSearch.length;j++){
      if(vinToFind[i][0]== vinToSearch[j][0]){//if numbers match
        found.push([vinToSearch[j][0],vinToSearch[j][1],vinToSearch[j]
[2],vinToSearch[j][3]])
       }}}
  var s2=ss.getSheetByName("Sheet3")
  var lr2 = s2.getLastRow()
  var lc2 =s2.getLastColumn()
  s2.getRange(2, 1, lr2, lc2).clearContent()
  s2.getRange(2, 1, found.length, found[0].length).setValues(found)
}

以下是您可以复制并尝试的共享电子表格。

https://docs.google.com/spreadsheets/d/1bC8SP6vVY0cMoZVg3lpo2ZtI2ch4FJ7kztlNHAVBWF8/edit?usp=sharing