我如何构建一个包含特定文本的过滤器
How can I build a filter that contains a certain text by gas
我有一个运行良好的脚本
function setFilter() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var filterSettings = {};
filterSettings.range = {sheetId: ss.getSheetByName("mySheet").getSheetId()};
filterSettings.criteria = {};
filterSettings['criteria'][4] = {
'hiddenValues': ["FALSE"]
};
var request = {
"setBasicFilter": {
"filter": filterSettings
}
};
Sheets.Spreadsheets.batchUpdate({'requests': [request]}, ss.getId());
}
在 E 列中
={"test";arrayformula(if(B2:B="",,not(iserror(find("mike",B2:B)))))}
- 我想用当文本在 B (1) 列中包含“某物”时替换 E (4) 列上的 hiddenValues FLASE,我试过
'textContains': ['mike']
但这不起作用
- 是否可以创建过滤器视图而不是基本过滤器
问题:
您必须在字段 condition
下定义 TEXT_CONTAINS
。
解决方案:
替换为:
filterSettings['criteria'][4] = {
'hiddenValues': ["FALSE"]
};
有了这个:
filterSettings['criteria'][1] = {
"condition": {
"type": "TEXT_CONTAINS",
"values": [
{
"userEnteredValue": "mike"
}
]
}
};
备注:
criteria
已弃用,请考虑改用 filterSpecs。
- 我之前没有注意到你的第二个问题。查看 Managing filter views 以获取有关创建过滤器视图的信息。
参考:
我有一个运行良好的脚本
function setFilter() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var filterSettings = {};
filterSettings.range = {sheetId: ss.getSheetByName("mySheet").getSheetId()};
filterSettings.criteria = {};
filterSettings['criteria'][4] = {
'hiddenValues': ["FALSE"]
};
var request = {
"setBasicFilter": {
"filter": filterSettings
}
};
Sheets.Spreadsheets.batchUpdate({'requests': [request]}, ss.getId());
}
在 E 列中
={"test";arrayformula(if(B2:B="",,not(iserror(find("mike",B2:B)))))}
- 我想用当文本在 B (1) 列中包含“某物”时替换 E (4) 列上的 hiddenValues FLASE,我试过
'textContains': ['mike']
但这不起作用 - 是否可以创建过滤器视图而不是基本过滤器
问题:
您必须在字段 condition
下定义 TEXT_CONTAINS
。
解决方案:
替换为:
filterSettings['criteria'][4] = {
'hiddenValues': ["FALSE"]
};
有了这个:
filterSettings['criteria'][1] = {
"condition": {
"type": "TEXT_CONTAINS",
"values": [
{
"userEnteredValue": "mike"
}
]
}
};
备注:
criteria
已弃用,请考虑改用 filterSpecs。- 我之前没有注意到你的第二个问题。查看 Managing filter views 以获取有关创建过滤器视图的信息。