【问题标题】:Dynamically query or filter a table in Google Sheets using checkboxes and searchbox使用复选框和搜索框动态查询或过滤 Google 表格中的表格
【发布时间】:2019-12-17 04:37:46
【问题描述】:

我有一个歌曲数据库,并希望使用过滤器或查询来根据带有搜索框和复选框的仪表板返回结果。这似乎很简陋,但几天后我找不到我要找的东西。查询似乎超级强大,但主要是在硬编码时。我需要一个用户友好的界面!我看过一些关于合并下拉框的教程,但我不一定想使用这些。

我不知道如何将 IF() 语句添加到查询中的 WHERE 子句中。

=QUERY(A4:G9, "WHERE IF '"(C2=TRUE, "' '"C CONTAINS TRUE"'",1))

这是我开始的,我知道它有各种各样的错误。

目标:勾选 MP3 复选框时,会列出所有带有 MP3 的歌曲。但是当我也勾选 WAV 框时,只剩下 MP3 和 WAV 的歌曲,等等。

我会将源数据和搜索键保存在不同的选项卡上。最终也喜欢将范围添加到长度和 bpm 框。

任何关于方法或公式的建议将不胜感激。

【问题讨论】:

    标签: checkbox google-sheets filter google-sheets-formula google-sheets-query


    【解决方案1】:

    请阅读:Query

    =query(A4:G9,"select A,B,C where 0=0"&IF($B$2," and B=TRUE","")&IF($C$2," and C=TRUE",""),1)
    

    【讨论】:

    • 我读过那个文件,谢谢分享。我是新来的查询,所以我仍然没有从阅读中得到一些更好的语法点。对于如何将常规 Google 表格公式与查询语言集成,我仍然有些困惑。显然,与符号& 的使用是关键。您的代码运行良好,但是如何将搜索框集成到该参数字符串中? WHERE D CONTAINS '" & C2 &"'
    • 您的代码看起来不错,只需构建更多 if 语句即可。
    • 好的,我让这个代码工作了:=QUERY(A4:G9,"SELECT * WHERE 0=0"&IF($B$2," AND B=TRUE","")&IF($C$2," AND C=TRUE","")&IF($D$2<>"", " AND D CONTAINS '"&$D$2&"'",""),1) 这工作并将返回所有符合这个条件的参数和那个。但是,如果我想返回所有符合这个条件或那个条件的歌曲,我该如何编码?我尝试将一些AND 替换为OR,但结果只是忽略了我在这些框中的输入。 =QUERY(A4:G9,"SELECT * WHERE 0=0"&IF($B$2," OR B=TRUE","")&IF($C$2," OR C=TRUE","")&IF($D$2<>"", " OR D CONTAINS '"&$D$2&"'",""),1)
    【解决方案2】:

    尝试:

    =IFERROR(QUERY(A4:G, "where "&TEXTJOIN(" and ", 1, 
     IF(B2=TRUE, "B=TRUE", ), 
     IF(C2=TRUE, "C=TRUE", )), 1), QUERY(A4:G))
    


    更新:

    =IFERROR(QUERY(A4:G, "where "&TEXTJOIN(" and ", 1, 
     IF(B2=TRUE, "B=TRUE", ), 
     IF(C2=TRUE, "C=TRUE", ), 
     IF(F1<>"", "lower(D) contains '"&F1&"'", )), 1), QUERY(A4:G))
    

    【讨论】:

    • 我更喜欢在 WHERE 之后放置 0=0 而不是 iferror 来满足要求
    • 这太棒了!!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-06
    • 2022-11-02
    • 2021-10-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多