javascript - 使用两列过滤器检索数据范围
问题描述
我有Transactions
包含主要数据的工作表和Report
包含人员姓名的工作表(活动),将从Transaction
主要数据计算的指标输入到其中。第一步是使用基于不同列的另一个条件检索该人的数据( 中的单元格)B6
。Report
var report = SpreadsheetApp.getActiveSpreadsheet();
var trsheet = report.getSheetByName("Transactions");
var areport = SpreadsheetApp.getActiveSheet();
var agent = areport.getRange('B6').getValue();
var trdata = trsheet.getDataRange().getValues();
var tdata = trdata.filter(function (row) {
return row[29] == agent && row[5] == 'Closed' ;
});
这不会产生错误,但会产生一个空数组tdata
。如何正确地将第二个条件添加到过滤器函数中?
解决方案
代码看起来不错。由于以下两个原因,它可能无法正常工作:
1.您可能正在比较不同的数据类型。例如,代理可能是工作表中的字符串类型Transactions
和活动工作表中的整数。
尝试改用getDisplayValues()是个好主意:
var report = SpreadsheetApp.getActiveSpreadsheet();
var trsheet = report.getSheetByName("Transactions");
var areport = SpreadsheetApp.getActiveSheet();
var agent = areport.getRange('B6').getDisplayValue();
var trdata = trsheet.getDataRange().getDisplayValues();
var tdata = trdata.filter(function (row) {
return row[29] === agent && row[5] === 'Closed' ;
});
2.还要确保在事务表中:
- F 列
row[5]
包含您要查找的关键字 :'Closed'
, - AD 列
row[29]
包含您要查找的变量的值:var agent
。
推荐阅读
- docker - Docker CE 安装错误 - Ubuntu 16.04 ppc64le (IBM Power)
- c# - 有没有比使用 C# 的 AWSSDK.Iot 更好的包发布到 Aws Iot Core?
- javascript - 如何在不等待页面重新加载的情况下为 BrowserView 切换网站?
- xml - 将复杂的、base-64 编码的 XML 文件读入 spark 数据帧/
- r - X 轴标签难以辨认。在 X 轴 ggplot2 上显示每隔一个标签
- azure - 有没有办法让应用服务设置使用 Key Vault 机密?
- sql - 如何使用单个连接执行多个 oracle 查询?
- javascript - 在 Typescript 严格模式函数上访问被调用者?
- linux - `ls -lt | 是什么意思 grep - | 头-1 | awk '{打印 $9}' | xargs rm`
- php - 不允许对“Symfony\Component\HttpFoundation\File\File”进行 Vich Uploader 序列化