Google sheets 搜索框谷歌表
我想在谷歌表搜索框。它应该是切片机的工作。需要使用该搜索框筛选的数据表 我想创建搜索框作为这个excel搜索框使用谷歌表。 这是一个模型 也许可以改进!Google sheets 搜索框谷歌表,google-sheets,script,search-box,Google Sheets,Script,Search Box,我想在谷歌表搜索框。它应该是切片机的工作。需要使用该搜索框筛选的数据表 我想创建搜索框作为这个excel搜索框使用谷歌表。 这是一个模型 也许可以改进! 以下是我所做的: 步骤1:定义过滤器 你已经在照片上做了,所以我不解释是怎么做的。只需在工作表中定义过滤器 第二步:让我们扣动扳机 在开始之前,您需要注意两件事:包含搜索框的工作表的名称和执行搜索的单元格 然后转到工具脚本编辑器并粘贴以下代码: const SHEET\u NAME='Sheet1' const SEARCH_CELLS=['E
以下是我所做的: 步骤1:定义过滤器 你已经在照片上做了,所以我不解释是怎么做的。只需在工作表中定义过滤器 第二步:让我们扣动扳机 在开始之前,您需要注意两件事:包含搜索框的工作表的名称和执行搜索的单元格 然后转到
工具
脚本编辑器
并粘贴以下代码:
const SHEET\u NAME='Sheet1'
const SEARCH_CELLS=['E10','E11',null]
功能OneEdit(e){
//获取版本范围和表
常数{range}=e
const sheet=range.getSheet()
//如果我们不在正确的单元格中,请返回
如果(sheet.getName()!==sheet\u NAME)返回
//让过滤器能够控制它
const filter=sheet.getFilter()
//要检查的列数
const nCols=Math.min(SEARCH_CELLS.length,filter.getRange().getWidth())
for(设i=0;iv!=value)//注意非严格等式
//设置条件以将其全部隐藏
const criteria=SpreadsheetApp.newFilterCriteria()
.setHiddenValues(hiddenValues)
.build()
filter.setColumnFilterCriteria(列,条件)
}否则{
//如果没有值,则不隐藏任何内容
filter.removeColumnFilterCriteria(列)
}
}
然后更改顶部的常数:
- 工作表的名称
- 所有搜索单元格的A1符号的列表。列表应按顺序排列,即第一个单元格用于第一列,第二个单元格用于第二列,依此类推。如果不想搜索该列,请将其设置为null
数据验证
。在条件
中,从范围中选择列表
,并添加过滤器第一列的所有值的范围。单击保存
,您就完成了
工具书类
setColumnFilterCriteria
第一个参数是它是什么列。现在它总是过滤器的第一列,但可以随意添加偏移量或添加逻辑来更改它更改的内容。请注意,您还需要更改hiddenValues
的列。您能举个例子吗?如果您告诉我您想要哪个列,我可以编辑答案。还是全部都是?我试着对每一列使用单独的过滤器。但只有一个过滤器工作。
function onEdit(e) {
var sh = e.source.getActiveSheet()
var cel = e.source.getActiveRange();
var crit = [];
var count = 0;
if (cel.getRow()==1){
try{
sh.getFilter().remove();
}
catch(e){
}
for (var col=1;col<=sh.getLastColumn();col++){
if (!sh.getRange(1,col).getValue() && sh.getRange(2,col).getValue() != ''){
crit.push([sh.getRange(2,col).getValue()])
count++
}
}
}
if (count != 0){
var filter = sh.getRange('A4:J').createFilter();
var criteria = SpreadsheetApp.newFilterCriteria()
.setHiddenValues(crit)
.build();
filter.setColumnFilterCriteria(1, criteria);
}
};
=transpose(unique(A5:A))