Google Sheet查询功能中动态的WHERE条件数

时间:2017-03-06 18:06:46

标签: google-sheets

我正在构建一个电子表格,可用于导入然后过滤wireshark捕获.csv。我们的想法是 - 将.csv导入第二个选项卡,在第一个选项卡上,您可以根据许多包含/排除过滤器显示数据。这是一张虚拟表格供参考:

https://docs.google.com/spreadsheets/d/17TtZHRiXCaH1XClq5SGRdIuyLZnMOrl6Ygrbfo9BbfM/edit?usp=sharing

正如您在电子表格中看到的,我有四个可能的“包含”值和四个可能的“排除”值,每个值都是通过选择下拉列表来确定的。目的是使单元格A6中的QUERY()函数显示基于这些过滤器的数据 Example of the filter at work

我知道如何使用WHERE为单个过滤条件执行此操作:

  

=查询('导入CSV在这里'!1:349,“select * where(”& B4&“=”& B2&“)”)

如何针对多种过滤条件进行操作:

  

= query('Import CSV Here'!1:349,“select * where(”& B4&“=”& B2&“)和(”& C4&“=”& C2&“ )“)

我无法弄清楚如何编写QUERY函数,以便它只在非空白的过滤列的WHERE条件中因素(因此已从其下拉菜单中主动填充)。有没有一种有效的方法呢?

1 个答案:

答案 0 :(得分:1)

您可以将每个过滤条件包装在if子句中,如果为空,则使用put得到的值为true。

=query(
  'Import CSV Here'!1:349,
  "select * WHERE " &
     IF(ISBLANK(B2), "1=1", B4 & "=" & B2) &
     " and " & IF(ISBLANK(C2), "1=1", C4 & "=" & C2) )