仅获取 Google App Script getRange 的未过滤值

Only get non-filtered values for Google App Script getRange

有没有办法只在 Google App 脚本中获取未过滤的值? (即获取显示值而不是隐藏值?

例如,假设我在 Google 表格中有以下单元格 + 值。

A1=abc    B1=x
A2=def    B2=y
A3=ghi    B3=y
A4=kjl    B4=x

并且我过滤了 B 列,因此它只显示 [y]。

A2=def    B2=y
A2=ghi    B3=y

当我使用以下脚本时,隐藏值和非隐藏值都会打印到 msgBox。

function msgBoxTest(){

var ss = SpreadsheetApp.getActiveSpreadsheet();
var lastColumn = ss.getLastColumn();
var range_input = ss.getRange("A1:A").getValues();
var result = [i for each (i in range_input)if (isNaN(i))]; 
// remove commas originating from empty cells

Browser.msgBox(result);  
//I want only def & ghi to display here. 
//Instead, I get all values -> abc,def,ghi,kjl
}

我用谷歌搜索并在线查看,但找不到有关在 Google 应用脚本中过滤掉值的代码。有什么建议么?

如果您想使用脚本,可以这样做:

function msgBoxTest(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var lastColumn = ss.getLastColumn();
var range = ss.getRange("A1:B").getValues();
var filter=[]//new array
  for(var i=0;i<range.length;i++){
   if (range[i][1]=="y"){
    filter.push(range[i][0])
  }}
Browser.msgBox(filter);  
//I want only def & ghi to display here. 
}

或者您可以使用一个简单的查询公式来完成:

=query(A1:B,"Select A where B='y'")