代码之家  ›  专栏  ›  技术社区  ›  Umar.H

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

  •  0
  • Umar.H  · 技术社区  · 7 年前

    考虑以下几点,

    日期,销售代表,收入,

    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&"') 
    

    现在我想知道的是,如果上面有多个下拉列表,那么如何将多个查询嵌套到一个单元格中。一个选择销售代表,一个选择日期。因此,如果一个人选择了一个销售代表和一个日期,他们将得到具体的日期和销售代表,但如果一个人只选择了一个销售代表,他们将得到所有的销售,无论日期,如果可能的话,反过来。

    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 回复  |  直到 7 年前
        1
  •  1
  •   Jeremy Kahan    7 年前

    我认为,一次处理一个SQL子句,然后把它组合起来更容易。例如在J2中你可以

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

    要么是空的要么是where子句的一部分。

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

    然后J4得到

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

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