Google表格-如何将过滤器功能与过滤器视图结合

问题描述 投票:2回答:1

我一直在处理具有超过100行的电子表格,并且发现了一种巧妙的方式来合并“隐藏”复选框,该复选框将隐藏列C匹配特定值(建筑物类型)的任何行,并在框旁边指定。为此,我首先创建了一个函数,如下所示:=FILTER(Data!A1, OR(Data!$C1<>$O$2, $P$2))并将其拖动到单独工作表的每一行和每一列中。读作如下:“如果数据中该行中的对应列C与建筑物类型不匹配,或者如果选中了复选框,则显示当前单元格。这样,当建筑物类型匹配时,整个行都被隐藏,并且该框A1分别针对每一行进行了调整,$ C1引用了建筑物的类型,$ O $ 2引用了可能隐藏的目标类型,$ P $ 2是复选框。

问题#1:这在数百个单元格中创建了很多公式,当找不到建筑物类型时,它在整行中显示#N / A。 “过滤器视图”能够隐藏这些值,但是每次我要隐藏或取消隐藏其他建筑物类型时都必须重置这些值很不方便。

我的修复尝试:我再次使用过滤器功能从一个单元格重新创建整个工作表,并使用以下方法隐藏适当的行:=FILTER(Data!A2:J191, ARRAYFORMULA((Data!$C2:C191<>$O$2)+(Data!D2:D191*$P$2))这是很棘手的部分。我将复选框的“ true”乘以D列中任意正数值的数组,然后将其与每个建筑物类型值进行“或”运算,以实现与以前相同的目标,但对于每个单元格。

问题2出现了:当我得到漂亮的图纸时,我无法通过过滤器视图对其进行排序,否则它将引发错误并且不显示任何内容。我要对原始标签进行排序,但打算完全忽略它。那么,如何结合“过滤器视图”和“过滤器功能”这两个来创建一个不错的电子表格,在其中可以对行进行隐藏和隐藏?

奖金问题3:要添加更多按钮,我的公式是:=FILTER(Data!A1:J191, ARRAYFORMULA((Data!$C1:C191<>$O$2)+(Data!D2:D192*$P$2)), ARRAYFORMULA((Data!$C1:C191<>$O$3)+(Data!D2:D192*$P$3)), ARRAYFORMULA((Data!$C1:C191<>$O$4)+(Data!D2:D192*$P$4)), ARRAYFORMULA((Data!$C1:C191<>$O$5)+(Data!D2:D192*$P$5)), ARRAYFORMULA((Data!$C1:C191<>$O$6)+(Data!D2:D192*$P$6)), ARRAYFORMULA((Data!$C1:C191<>$O$7)+(Data!D2:D192*$P$7)), ARRAYFORMULA((Data!$C1:C191<>$O$8)+(Data!D2:D192*$P$8)), ARRAYFORMULA((Data!$C1:C191<>$O$9)+(Data!D2:D192*$P$9)))这很丑陋,加载速度很慢。有没有一种方法可以创建一个函数范围来处理多行上的相同检查,并将其压缩为一个公式?

sorting google-sheets show-hide filterfunction google-sheets-filter-view
1个回答
1
投票

这里是另一种怪兽(此重复次数较少):

=QUERY(
  {IGNORE!A2:J, IGNORE!P2:P},
    "SELECT * "
  & "WHERE Col3 is not null "
  & IF(COUNTIF(P2:P9, False) = 0, "", "AND NOT Col3 MATCHES '^" & JOIN("$|^", IFNA(FILTER(O2:O9, P2:P9 = False))) & "$' ")
  & IF(COUNTIF(A2:K2, ">0") = 0, "", "ORDER BY Col" & JOIN(", Col", IFNA(FILTER(COLUMN(A2:K2) & IF(COLUMN(A2:K2) = 1, "", " DESC"), A2:K2)))),
  0
)

您的复选框应保留。第二行可以只有True / False值,不需要列号(只需更改COUNTIF(A2:K2, ">0")-> COUNTIF(A2:K2, True))。因此,随后的排序现在也可以工作(但仅按列的实际顺序:如果选中1、3、4,则将首先按1、2、4进行排序)。您可以在排序的右边放置另一个配置表,在这里您可以选择要排序的所有列,它们的相互顺序以及它们的desc / asc。

enter image description here

编辑:添加了IFNA,因此FILTER不会返回错误,将多个ANDS更改为MATCHES和简单的正则表达式。

© www.soinside.com 2019 - 2024. All rights reserved.