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

我有包含主要数据的工作表,以及包含人名的工作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。如何正确地将第二个条件添加到过滤函数中?


互换的青春
浏览 101回答 1
1回答

慕慕森

代码看起来不错。由于以下两个原因,它可能无法正常工作: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。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript