Google 使用依赖下拉列表的工作表查询

Google Sheets Query using dependent dropdown

最初,我使用此公式在单个下拉列表中设置了基于按月和年搜索的查询

=QUERY(Haulage!A2:R, "SELECT * WHERE 1=1 "&IF(A2="All Months",""," AND LOWER(M) = LOWER('"&A2&"')"), 1)

这很好用,但我现在调整了我的下拉菜单,使其成为一个依赖下拉菜单,第一个下拉菜单按年份显示,然后按那一年过滤第二个下拉菜单。在第二个下拉列表中,我想包含一个“All 2022”选项,然后它将根据日期为 2022 的所有内容过滤我的查询。

我正在努力调整我的公式以使其能够完成这项工作,但我将不胜感激任何帮助

编辑: Link 到传播的测试变体sheet - https://docs.google.com/spreadsheets/d/1AewSFMxQjnYD44rkPk6h7TGlio2bwm8hv_mAkGiaEwA/edit?usp=sharing

请注意,依赖下拉菜单目前是错误的方式 - 因此 J1 下拉菜单触发 A1 下拉菜单,然后 A1 中的 selection 转移到“日期过滤器" sheet

编辑 - 22 年 5 月 30 日:

希望在上述内容的基础上进行构建和调整,以包括按特定日期以及通过第三个相关下拉列表的过滤器。

它在我脑海中处于初始阶段,但我最初想知道是否可以使用 3 个不同的下拉菜单来应用过滤器。所以我将 dropdown1 作为 YEAR,dropdown2 作为 MONTH & YEAR,然后将 dropdown3 作为 DATE,每个都依赖于前一个。

是否可以在 selected dropdown1 时按年过滤,如果在 dropdown2 中制作 selection 则按月过滤,如果 select 则按特定日期过滤离子是在 dropdown3 中生成的 - 即我在 dropdown1 中 select 2022 并且过滤了所有 2022 条记录,然后我在 dropdown2 中 select May 2022 并且这将过滤器更改为从 2022 年 5 月开始的记录然后我 select 2022 年 5 月 2 日从下拉列表 3 过滤到仅从该日期开始的记录?

尝试

=QUERY(Haulage!A2:R, "SELECT * WHERE " & if(A2="All","A is not null",if(left(A2,3)="All","(M) LIKE ('%"&SUBSTITUTE(A2,"All","")&"')","LOWER(M) = LOWER('"&A2&"') ")) , 1)

句子是if(A2="All","A is not null",if(left(A2,3)="All","(M) LIKE ('%"&SUBSTITUTE(A2,"All","")&"')","LOWER(M) = LOWER('"&A2&"') "))意思是

  • 如果A2为All,当A不为null时将选择所有行
  • 如果 A2 以 All 开头,我们将保留所有包含 A2 而没有 All(如 %yyyy)的行,
  • 如果 A2 不是以 All 开头,我们将保留与 A2 具有精确值的行

编辑

如果遇到混合值(数字和字符串),应用to_text并将A更改为Col1,B更改为Col2等,如下所示

=QUERY(arrayformula(to_text(Haulage!A2:R)), "SELECT * WHERE " & if(A2="All","Col1 is not null",if(left(A2,3)="All","Col13 LIKE ('%"&SUBSTITUTE(A2,"All","")&"')","LOWER(Col13) = LOWER('"&A2&"') ")) , 1)