带有下拉式Google表格查询的多个IF语句

时间:2018-08-11 14:49:23

标签: google-sheets

请考虑以下内容,

我有三栏,

日期,销售代表,收入

Date,   Sales Rep,    Revenue,
1/1/18  Jon           £250
1/1/18  Evie          £350
1/1/18  Muhammad      £220

现在,要查询此数据,我可以执行以下操作:

IF(a2="","", QUERY(B2:C4, "Select * Where A = '"&A2&"') 

现在我想知道的是,如果一个查询有多个下拉菜单,如何将多个查询嵌套到一个单元格中。一位选择销售代表,一位选择日期。因此,如果选择了销售代表和日期,他们将获得特定的日期和销售代表,但是如果选择了仅销售代表,则他们将获得所有销售,而与日期无关,如果可能,则选择相反的日期。

我尝试了OR语句

IF(OR(a2="","", QUERY(B2:C4, "Select * Where A = '"&A2&"'), IF(a3="","", QUERY(B2:C4, "Select * Where b = '"&A3&"'))) but this didn't work. 

为方便起见,我创建了一些虚拟数据和一张裸纸。

https://docs.google.com/spreadsheets/d/15nlBPM9u3g0XNE3xbBgSZJxyHz2JjP9io1LfqGgX4CI/edit?usp=sharing

1 个答案:

答案 0 :(得分:1)

我认为,一次处理SQL子句然后将其组合在一起会更容易。因此,例如在J2中,您可以放

=if(ISBLANK(E2),"","B = '"&E2&"'")

为空或其中的where子句。

在J3中做

=if(ISBLANK(E3),"","A = Date'"&text(datevalue(E3),"yyyy-mm-dd")&"'")

然后J4得到

=TEXTJOIN(" AND ",true,J2:J3)

并按以下步骤使用J5。

=if(isBlank(J4),"",query(A:C,"SELECT * WHERE " & J4))