如何使用 query() 在 google 表格中构建搜索表单?

How to build a search form in googlesheets with query()?

要求的行为:
我想在 Google 表格中创建一个搜索表单来查询我用作数据库的 table。

  1. 用户应该可以通过多次搜索来查询table 用户可以在 sheet.
  2. 的单元格中键入的类别
  3. 如果用户没有输入搜索字符串,那么所有项目 应该显示。
  4. 此外,用户应该能够在 "including OR" 和 "excluding AND" 搜索。

原始 table 与搜索表单位于不同的 sheet 上。最终的搜索表单应该有 10 个以上的可搜索类别。

当前状态
由于原始 table 与搜索表单的 sheet 不同,我的想法是通过动态 query() 函数导入 table。

我创建了两个输入搜索输入字段和一个用户可以在 "OR" 和 "AND" 之间切换的字段。我还创建了一个连接这 3 个搜索词的查询函数。 "OR" 和 "AND" 搜索之间的变化有效(使用第一种方法)。

第一种方法:

=QUERY('Geschäftsvorfälle'!A2:AG1000, "select * WHERE A="&B4&" "&D1&" B='"&B5&"'")

第二种方法:

=QUERY('Geschäftsvorfälle'!A2:AG1000, "select * " &if(B5="Alle",, "WHERE B='"&B5&"'") &if(B4="",, "WHERE A="&B4&""))

问题
第一种方法适用于 "OR" 搜索,但如果我使用多个搜索词,则会返回一个空的 sheet。如果将一个搜索词留空,它还会抛出 "VALUE" 错误。如果我使用多个搜索词,即使应该有匹配的行,第二种方法也会引发 "VALUE" 错误。

有没有办法让这种搜索表单在 Google 表格中工作?如果是,是否可以使用 query() 来完成,我该怎么做?您能否提供一些示例屏幕截图或代码?

屏幕截图
搜索表单:

组合查询:

尝试:

=QUERY('Geschäftsvorfälle'!A2:AG, 
 "where "&TEXTJOIN(" "&D1&" ", 1, 
 IF(B4<>"", " A="&B4, ), 
 IF(B5<>"", " B='"&B5&"'", ), 
 IF(B6<>"", " lower(F) contains '"&LOWER(B6)&"'", )), 1)