Google sheets 如何对照6位数项目编号列表检查共享google驱动器上的文件名列表,并自动选中复选框

Google sheets 如何对照6位数项目编号列表检查共享google驱动器上的文件名列表,并自动选中复选框,google-sheets,google-drive-api,Google Sheets,Google Drive Api,每个标题。我有一个6位产品编号的产品列表。我需要对照引用这些产品的文件名列表进行交叉引用,如果它们存在,则自动勾选复选框。6位数字可以出现在文件名的任何位置 我曾尝试过使用现有脚本将文件名列表(包括子文件夹)导入另一个工作表选项卡并执行vlookup,但在导入完所有文件名之前,这会超时,因此对我来说不起作用,而且似乎是一种过于复杂且缓慢的方式 有没有什么方法可以做我想做的,或者甚至比在google drive中手动搜索2000个左右的项目编号更有效的解决方法?您可以尝试使用google Apps

每个标题。我有一个6位产品编号的产品列表。我需要对照引用这些产品的文件名列表进行交叉引用,如果它们存在,则自动勾选复选框。6位数字可以出现在文件名的任何位置

我曾尝试过使用现有脚本将文件名列表(包括子文件夹)导入另一个工作表选项卡并执行vlookup,但在导入完所有文件名之前,这会超时,因此对我来说不起作用,而且似乎是一种过于复杂且缓慢的方式


有没有什么方法可以做我想做的,或者甚至比在google drive中手动搜索2000个左右的项目编号更有效的解决方法?

您可以尝试使用google Apps Script。我已经复制了你的情况,并提出了一个可行的代码。请参阅下面的代码(我已经在我这边尝试过了,它工作正常):


您可能需要对代码进行一些修改/调整,以使其按照您的意愿工作。

我无法直接共享该文件,因为它包含专有信息,但我会制作一个类似的文件。一开始我应该解释得更好,我不需要导入文件列表,只要搜索它并报告匹配项是否存在就行了。这里有一个指向文件传真的链接:感谢脚本。但是我遇到了以下错误:异常:在获取对象DriveApp上的方法或属性getFolderById时出现意外错误。(第2行,文件“TEst 2”)我非常感谢您对解决该问题的任何见解。您是否使用了您的google drive文件夹的正确文件夹id?我已经解决了该部分,并使用一些虚拟文件进行了测试,这些文件的名称为6位数的引用。脚本成功完成,但工作表保持不变。当您测试它时,您看到了什么?每当我运行脚本并且满足6位数的引用时,都会选中E列上的勾选框。
function myFunction() {
  driveFiles = DriveApp.getFolderById(folderId).getFiles(); // REPLACE folderId with the folder containing all your files to check
  ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1");
  lastRow = ss.getLastRow()
  itemNums = ss.getRange(2, 1, lastRow, 1).getValues();
  while(driveFiles.hasNext()){
    fileName = driveFiles.next().getName();
    for(row in itemNums){
      if(fileName.includes(itemNums[row])){
         Logger.log(ss.getRange(row, 5).getValue());
         ss.getRange(row, 5).check()
      }
    }
  }
}