google-apps-script - 根据多个条件过滤列并复制到不同的工作表
问题描述
我想将过滤后的数据从一张纸移到另一张纸上。
我可以对单个过滤值执行此操作:Money
但我想过滤数组中的多个值,例如:["Money", "Society", "Impacts"]
我不知道如何遍历filterValues
数组并从不同的 filterValues 中收集所有值。
我只是为 filterValues 中的最后一个值获取过滤后的 rawData 值
我可以用不同的方式做到这一点,但我试图更好地理解过滤
function myFunction() {
var filterValues = ["Money", "Society"]; //filter values.
var col = 5; // column "E".
var sheetName = "Elements";
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sht = ss.getSheetByName(sheetName);
var rng = sht.getDataRange();
var rawData = rng.getDisplayValues();
var out = rawData.filter(dataFilter);
function dataFilter(arr) {
return arr[col-1]== filterValues;
}
const osh=SpreadsheetApp.getActive().getSheetByName("A");
osh.clear();
osh.getRange(1,1,out.length,out[0].length).setValues(out);
};
试过这个
for (var i = 0; i <= filterValues.length-1; i++) {
var out = rawData.filter(dataFilter);
function dataFilter(arr) {
return arr[col-1]== filterValues[i];
}
}
解决方案
您可以像在 SumProduct 中使用的那样,将基本过滤器函数与数组语法结合使用。示例:=filter(List!A:A,(List!A:A="Society")+(List!A:A="Money"))
。
我认为您不需要使用 Google App Scripts。查看此电子表格
推荐阅读
- c# - 有没有办法避免在我的 Extension 方法中传递两个泛型参数?
- python - 在 PyGame 中编写一个在屏幕中心绘制图像的类
- node.js - 无法从节点模块导出变量并在我的 node-express 应用程序中使用该变量
- javascript - 如何让 gulp 函数串联运行?(一饮而尽下载)
- http - NGINX - 错误 502 除非设置了 User-Agent 标头
- laravel - 如何在 Laravel 中通过登录发送消息?
- excel - 从列表中搜索数据并删除行
- wso2 - WSO2 API Manager 无法调用已注册的外部 API。它可能与代理配置问题有关?
- mysql - 数据类型(字段)表上的雄辩关系
- html - 如何并排对齐两张卡片中的项目