1

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

  1. 用户应该能够通过用户可以在工作表的单元格中键入的多个搜索类别来查询表格。
  2. 如果用户没有输入搜索字符串,则应显示所有项目。
  3. 此外,用户应该能够在“包括 OR”和“排除 AND”搜索之间进行选择。

原始表格与搜索表单位于不同的工作表上。最终的搜索表单应该有超过 10 个可搜索的类别。

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

我创建了两个输入搜索输入字段和一个用户可以在“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”搜索,但如果我使用多个搜索词,则会返回一个空表。如果将一个搜索词留空,它也会引发“VALUE”错误。如果我使用多个搜索词,即使应该有匹配的行,第二种方法也会引发“VALUE”错误。

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

截图
搜索表单:
在此处输入图像描述

组合查询:
在此处输入图像描述

4

1 回答 1

1

尝试:

=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)

0

于 2019-10-27T11:50:24.447 回答