Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 电子表格中的当前值过滤器?_Google Apps Script_Google Sheets - Fatal编程技术网

Google apps script 电子表格中的当前值过滤器?

Google apps script 电子表格中的当前值过滤器?,google-apps-script,google-sheets,Google Apps Script,Google Sheets,类似于这里的问题 提前谢谢你,抱歉英语不好 加----------------- 1myhiddendata=[,'a','c','d'] 数组变量?如何输出 2补偿-4,0-4?目标: 隐藏列过滤器中除当前选定单元格中的值以外的所有其他值,或仅显示与当前单元格相等的元素 流量: 获取当前列中的所有值 使用Arrayreduce筛选出与当前单元格值匹配的所有值 仍不支持使用.setHiddenValues将筛选后的数组hiddenValues设置为setVisibleValues。 片段: 我

类似于这里的问题

提前谢谢你,抱歉英语不好

加-----------------

1myhiddendata=[,'a','c','d']

数组变量?如何输出

2补偿-4,0-4?

目标: 隐藏列过滤器中除当前选定单元格中的值以外的所有其他值,或仅显示与当前单元格相等的元素

流量: 获取当前列中的所有值 使用Arrayreduce筛选出与当前单元格值匹配的所有值 仍不支持使用.setHiddenValues将筛选后的数组hiddenValues设置为setVisibleValues。 片段:
我同意。谢谢。请分享一份你的工作表,上面有你想要的输出的例子。很难理解你想要什么。请按照player0的建议共享您的电子表格,或者尝试用其他方式解释您的筛选器应该执行的操作。因此,是否要隐藏列spreadsheet.getActiveRange.getColumn中条目为“a”、“c”或“d”的所有行?或者要隐藏与当前行偏移量为-4的行?有时-->
I want

(1,A)=data

(2,A)=a

(3,A)=b

(4,A)=c

(5,A)=b

(6,A)=d


CurrentCell(3,A) ---> execute --> output (2,A)=b,(3,A)=b 
function Spreadsheet_CurrentValue_Filter() {
  var spreadsheet = SpreadsheetApp.getActive();
  spreadsheet.getCurrentCell().offset(-4, 0).activate();

  var criteria = SpreadsheetApp.newFilterCriteria()
                               .setHiddenValues(['', 'a', 'c', 'd'])
                               .build();
  spreadsheet.getActiveSheet().getFilter()
                              .setColumnFilterCriteria(spreadsheet
                                                       .getActiveRange()
                                                       .getColumn(), criteria);
}
function Spreadsheet_CurrentValue_Filter() {
  var spreadsheet = SpreadsheetApp.getActive(),
    sheet = spreadsheet.getActiveSheet();

  var currCell = sheet.getCurrentCell(),
    currCellValue = currCell.getValue(),
    currCol = currCell.getColumn(),
    allValues /**all values in current column */ = sheet
      .getRange(1, currCol, sheet.getLastRow(), 1)
      .getValues();

  /*Get hidden values as a 1D array from 2D array allValues*/
  var hiddenValues = allValues.reduce(function(acc, [row]) {
    if (!(row === currCellValue)) {
      acc.push(row);
    }
    return acc;
  }, []);

  var criteria = SpreadsheetApp.newFilterCriteria()
    .setHiddenValues(hiddenValues)
    .build();
  sheet.getFilter().setColumnFilterCriteria(currCol, criteria);
}