【发布时间】:2020-10-01 23:23:13
【问题描述】:
我一直在处理一个超过 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)) 这是 hacky 部分。我将复选框的“真”乘以 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))) 这很难看,加载速度也很慢。有没有办法创建一个函数范围来处理对多行的相同检查,并将其压缩成一个公式?
【问题讨论】:
-
更新:我找到了一种解决方法,方法是在第二行添加一个复选框来处理排序,使选中框上的值范围为 1-11,未选中为 0,抛出一个排序函数那个怪物函数并添加 A2、False、B2、False 等等等,但是出于对所有数字的热爱,有人需要告诉我如何使这更有效。
-
请提供样张。
-
对不起,我是这个网站的新手。指向它的链接会起作用吗?我将研究如何提供样本。现在,这里有一个链接。 docs.google.com/spreadsheets/d/…
标签: sorting google-sheets show-hide filterfunction google-sheets-filter-view