使用Google脚本,我喜欢在google单上的一列中筛选多个标准。在下面的简单示例中,我喜欢在A列中筛选"Apple“和”空白“,以便获得与下面图片示例中手动进行的过滤结果相同的结果。我在Google脚本中找不到答案。我的实际应用程序处理一个google表中的大量数据集(100 k行)。因此,我希望有任何帮助,一个有效的方法!谢谢!
function test() {
var data = [['Fruits', 'Price'],
['Apple', 10],
['Orange', 5],
['', 30],
['Mango', 7]];
var ss = SpreadsheetApp.getActiveSheet()
ss.getRange('A1:B5').setValues(data);
if (ss.getFilter() != null) { //Remove existing fitler before creating a new filter
ss.getFilter().remove();
}
var filter = ss.getRange('A1:B').createFilter();
criteria = ['Apple', ''];
filterCriteria = SpreadsheetApp.newFilterCriteria().whenNumberEqualToAny(criteria);
// filterCriteria = SpreadsheetApp.newFilterCriteria().whenTextEqualToAny(criteria); //didn't work
filter.setColumnFilterCriteria(1, filterCriteria);
}

发布于 2021-09-09 21:28:49
试试这个:
filterCriteria = SpreadsheetApp.newFilterCriteria().whenFormulaSatisfied("=REGEXMATCH(A2:A5, \"(Apple|^$)\" )")这将使用一个正则表达式来检查该行是否包含、Apple、或空单元格。
注意:如果要添加更多条件,只需在打开和关闭括号()中添加,并将其与|__分隔。示例(Apple|Mango|^$)
输出:

参考文献
https://stackoverflow.com/questions/69123690
复制相似问题