在 google 张中弹性地使用多个过滤器功能
Using multiple filter functions in google sheets elastically
在 Google 传播sheet 中,我有一个摘要 sheet 我正在从多个 sheet 导入信息。我的过滤器函数之一如下所示:
=过滤器(Sheet2!A14:A27, (Sheet2!K14:K27="Y") + (Sheet2!K14:K27="R"))
我有多个像这样的过滤器功能。我面临的问题是我必须为这个函数的结果分配一个静态行数,但结果是非常动态的(可能是 1 行甚至 15 行)。
我一直在进行详尽的搜索,但找不到弹性地执行此操作的好方法,以便仅附加所有 Filter 函数的结果(每个结果之间可能有一个空的 row/header 行)。
有人在其中一个论坛上提供的一个解决方案是为每个分配静态行数并使用脚本隐藏空行,这似乎不是一个非常干净的解决方案(但我可能不得不回退)
此外,我考虑过使用脚本,但如果我理解正确,脚本只能是 'triggered' 来自菜单、onOpen、onEdit 等,这也可能不是很直观(必须重新加载传播sheet 查看 onOpen() 等情况下的任何变化)
使用自定义函数会再次导致同样的问题,因为自定义函数 运行 在特定单元格上(我们不知道是哪个单元格,因为我们正在尝试使其动态化)
很高兴听到任何想法!
您应该始终将您处理的 cells/ranges 传递到自定义函数中,而不是在函数中读取它们。也尽量不要直接写,而是 return 结果。这样电子表格将自动正确更新,您将不需要任何权限。
这是一个例子
function myFilter(values1, values2) {
return values1.filter(function(v, i) {
return values2[i][0] === "Y" || values2[i][0] === "R";
});
}
然后
={myFilter(Sheet1!A14:A27,Sheet1!K14:K27);A1;myFilter(Sheet2!A14:A27,Sheet2!K14:K27)}
不过还是有点长。但您也可以将中间结果保存在不同的单元格中,然后将结果连接在一起。或者编写一个可以将任意数量的范围作为参数的过滤器函数。
您能否提供更多有关这些过滤器功能的示例。也许有更好的方法 modularise/shorten 它。
这里是堆叠多列的方法。
{A:A;B:B;C:C}
这里是堆叠多个过滤器的方法。
{过滤器 1;过滤器 2;过滤器 3}
这里是如何使用 headers 堆叠多个过滤器。
{"Header1";过滤器 1;"Header2";过滤器 2;"Header3";过滤器 3}
在 Google 传播sheet 中,我有一个摘要 sheet 我正在从多个 sheet 导入信息。我的过滤器函数之一如下所示:
=过滤器(Sheet2!A14:A27, (Sheet2!K14:K27="Y") + (Sheet2!K14:K27="R"))
我有多个像这样的过滤器功能。我面临的问题是我必须为这个函数的结果分配一个静态行数,但结果是非常动态的(可能是 1 行甚至 15 行)。
我一直在进行详尽的搜索,但找不到弹性地执行此操作的好方法,以便仅附加所有 Filter 函数的结果(每个结果之间可能有一个空的 row/header 行)。
有人在其中一个论坛上提供的一个解决方案是为每个分配静态行数并使用脚本隐藏空行,这似乎不是一个非常干净的解决方案(但我可能不得不回退)
此外,我考虑过使用脚本,但如果我理解正确,脚本只能是 'triggered' 来自菜单、onOpen、onEdit 等,这也可能不是很直观(必须重新加载传播sheet 查看 onOpen() 等情况下的任何变化)
使用自定义函数会再次导致同样的问题,因为自定义函数 运行 在特定单元格上(我们不知道是哪个单元格,因为我们正在尝试使其动态化)
很高兴听到任何想法!
您应该始终将您处理的 cells/ranges 传递到自定义函数中,而不是在函数中读取它们。也尽量不要直接写,而是 return 结果。这样电子表格将自动正确更新,您将不需要任何权限。 这是一个例子
function myFilter(values1, values2) {
return values1.filter(function(v, i) {
return values2[i][0] === "Y" || values2[i][0] === "R";
});
}
然后
={myFilter(Sheet1!A14:A27,Sheet1!K14:K27);A1;myFilter(Sheet2!A14:A27,Sheet2!K14:K27)}
不过还是有点长。但您也可以将中间结果保存在不同的单元格中,然后将结果连接在一起。或者编写一个可以将任意数量的范围作为参数的过滤器函数。 您能否提供更多有关这些过滤器功能的示例。也许有更好的方法 modularise/shorten 它。
这里是堆叠多列的方法。
{A:A;B:B;C:C}
这里是堆叠多个过滤器的方法。
{过滤器 1;过滤器 2;过滤器 3}
这里是如何使用 headers 堆叠多个过滤器。
{"Header1";过滤器 1;"Header2";过滤器 2;"Header3";过滤器 3}