首页 > 解决方案 > 从另一个工作表谷歌表格中查询一列中的数据列表

问题描述

我有一列中的数据列表,该列的大小不断变化。

目前我正在使用下面的脚本,该脚本仅适用于 1 个单元格。我的范围是 O2:O

var spreadsheet = SpreadsheetApp.getActive();
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('PrepSheet'), true);
spreadsheet.getRange('A2').activate();
spreadsheet.getCurrentCell().setFormula('=QUERY({\'LOCATIONS\'!$A$2:$C},"SELECT * WHERE Col1 = \'" & 
O2 & "\' ")');

How could I add a range like this to the query   \'" & O2:O & "\' ")'); ??

非常感谢

标签: google-apps-script

解决方案


您可以构建一个正则表达式O2:O来匹配Col1

spreadsheet.getCurrentCell().setFormula('=QUERY({\'LOCATIONS\'!$A$2:$C},"SELECT * WHERE Col1 MATCHES \'" & JOIN("|",FILTER(O2:O, NOT(ISBLANK(O2:O)))) & "\' ")');

我也会稍微简化你的代码。

function insertQuery() {
  var spreadsheet = SpreadsheetApp.getActive();
  var sheet = spreadsheet.getSheetByName('PrepSheet');
  sheet.getRange('A2').activate().setFormula('=QUERY({\'LOCATIONS\'!$A$2:$C},"SELECT * WHERE Col1 MATCHES \'" & JOIN("|",FILTER(O2:O, NOT(ISBLANK(O2:O)))) & "\' ")');
}

推荐阅读