为了账号安全,请及时绑定邮箱和手机立即绑定

使用两列过滤器检索数据范围

使用两列过滤器检索数据范围

互换的青春 2023-01-06 10:58:26

我有包含主要数据的工作表,以及包含人名的工作Transactions表(活动),并将根据主要数据计算的指标输入其中。第一步是使用基于不同列的另一个条件检索该人( 中的单元格)的数据。ReportTransactionB6Report


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 回答

?
慕慕森

TA贡献1607条经验 获得超17个赞

代码看起来不错。由于以下两个原因,它可能无法正常工作:


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


查看完整回答
反对 回复 2023-01-06
  • 1 回答
  • 0 关注
  • 9 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信