我正在尝试创建一个仪表板-其中一个选项卡旨在根据多个条件过滤人员列表。对于“封面”部分,我认为通过复选框表示标准会有所帮助,但是对于我如何从具有不同公式的原始数据选项卡中进行提取没有任何启发。我设想的外观示例如下(示例封面和原始数据):
https://docs.google.com/spreadsheets/d/1RzQ5vJYwpqDClqcPe_U7meRdtFBYL_Gn6b8_yKIP1RU/edit#gid=0
我遇到的主要问题是它涵盖了多个条件,而我正努力提出一个公式来返回数据。因此,在示例表中,我可以检查“苹果”和“蘑菇”,它将从原始数据选项卡中返回满足此条件的人的名字。
我在表格中使用了Google表格公式和查询功能,但是主要发现很难看到这种可能性。
如果有人对此有解决方案,或者以类似的方式认为可以实现相同的目标,那么任何帮助将不胜感激!
谢谢, 山姆
答案 0 :(得分:0)
我已经使用Data!F2
=IFERROR(FILTER(A2:D9,
IF(Front!$C2 = TRUE, SEARCH(Front!$B2, $B$2:$B$9), LEN($A$2:$A$9)),
IF(Front!$C3 = TRUE, SEARCH(Front!$B3, $B$2:$B$9), LEN($A$2:$A$9)),
IF(Front!$C4 = TRUE, SEARCH(Front!$B4, $B$2:$B$9), LEN($A$2:$A$9)),
IF(Front!$C6 = TRUE, SEARCH(Front!$B6, $C$2:$C$9), LEN($A$2:$A$9)),
IF(Front!$C7 = TRUE, SEARCH(Front!$B7, $C$2:$C$9), LEN($A$2:$A$9)),
IF(Front!$C8 = TRUE, SEARCH(Front!$B8, $C$2:$C$9), LEN($A$2:$A$9)),
IF(Front!$C10 = TRUE, SEARCH(Front!$B10, $D$2:$D$9), LEN($A$2:$A$9)),
IF(Front!$C11 = TRUE, SEARCH(Front!$B11, $D$2:$D$9), LEN($A$2:$A$9))), "No Values Returned in filter. Please try again.")
这应该可以满足您的需求。
有人要求我显示此功能的工作原理。
从IFERROR
开始,它被包裹在主函数中,因此,如果FILTER
不返回任何内容,则不会遇到错误消息。
该函数的大部分内容围绕FILTER
构建,而QUERY
则是TRUE
的代理,而这正是@Sam Breddy最初尝试的。
根据是否经过检查,使用评估为FALSE
或... IF(Front!$C2 = TRUE, SEARCH(Front!$B2, $B$2:$B$9), LEN($A$2:$A$9) ...
的复选框,我们可以开始创建动态过滤功能。
仅当Apples
中的复选框设置为$B$2:$B$9
时,第一个过滤器参数Front!$C2
才确定TRUE
中是否有FALSE
。
这里的窍门是当复选框为FALSE
时具有有效的值。如果FILTER has mismatched range sizes. Expected row count: 8. column count: 1. Actual row count: 1, column count: 1.
参数设置为无/空白,则会弹出错误:
LEN($A$2:$A$9)
为了解决这个问题,我只用SEARCH
将第一列的长度返回给函数,这对过滤器没有影响。
有趣的部分是The position at which a string is first found within text and ignores capitalization of letters. Returns #VALUE! if the string is not found.
,它返回:
Apple
搜索会找到您要查找的字符串...在这种情况下为FILTER
,然后将该字符串的位置传递回TRUE
,从而只显示其结果为{ {1}}。
例如SEARCH(Front!$B2, $B$2:$B$9)
将返回1
通过对我们的SEARCH
函数的每个后续参数使用FILTER
方法,它们可以充当OR
的角色,从而允许该函数评估APPLES
或{{1} }。
老实说,我在这个问题上a了一口气,最终脱颖而出。我认为这不适用于同一列中具有相同首字母
的项目例如如果您要在同一列中查找ORANGES
和Apples
...
我还确定对具有相同值的两列进行这种动态过滤可能会遇到一些问题,但是此解决方案应符合您的需求。
干杯