【问题标题】:Filtering a Sheet across multiple columns跨多列过滤工作表
【发布时间】:2020-08-19 11:18:59
【问题描述】:

寻求有关过滤问题的帮助。我有一张包含几十列的表格,其中任何一列都可能包含用户可能想要过滤的数据。出于可用性考虑,我想做的是创建一个过滤选项卡,其中包含一些空单元格,用户可以填充并返回包含所有搜索词的所有行的列表。

示例:

本例中的数据有第 1、2 和 3 行。根据选择条件(Denver、Product 1 和 Skill 1),只有第 2 行包含所有三个搜索词。

是否有过滤功能可以跨行和列进行搜索?

https://docs.google.com/spreadsheets/d/1nMu00tyCC0gEw4IPuaXG1nb50Xj7IYQ9Gcmq6C7xgfs/edit?usp=sharing

【问题讨论】:

    标签: google-sheets filter concatenation array-formulas google-sheets-query


    【解决方案1】:

    尝试:

    =ARRAYFORMULA(ARRAY_CONSTRAIN(QUERY({A7:J9, 
     TRANSPOSE(QUERY(TRANSPOSE(A7:J9),,99^99))}, 
     "where "&JOIN(" and ", IF(B1:B3="",,
     "lower(Col"&COLUMN(J9)+1&") contains '"&
     LOWER(B1:B3)&"'")), 0), 99^99, COLUMNS(A7:J9)))
    

    【讨论】:

    • 嗨@player0 - 效果很好。太感谢了。能否请您稍微解释一下发生了什么?
    • 当然,好主意是使用“transpose(query(transpose”组合)将所有列折叠成一个(Col11)并在其中搜索B1:B3值。接下来我们使用查询,我们可以使用生成基于 B1:B3 值(IF 函数)的存在的命令字符串(Join 函数),查询区分大小写,因此我们使用 LOWER 来对抗它,最后我们使用 Array_constrain 仅返回需要的列,例如不输出第 11 栏
    • @player0 感谢您的精彩解释 - 通过更好地理解公式的作用,确实帮助我了解更多信息。
    猜你喜欢
    • 2017-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-11
    相关资源
    最近更新 更多