【问题标题】:Google Query SELECT statement concatenated with a NESTED IF result与 NESTED IF 结果连接的 Google Query SELECT 语句
【发布时间】:2021-02-06 22:07:39
【问题描述】:

是否可以从 CELL 返回嵌套的 IF 结果,该结果将连接到 QUERY 函数中的 SELECT 语句?

例如,我试图将以下嵌套 IF 函数的结果返回到查询函数中:

https://docs.google.com/spreadsheets/d/15i1E8AZHORRmPlu1VQqFRN1_7-aUyAz-hlYMOUtIlY4/edit?usp=sharing

感谢,如果有人可以看看。

问候 合资公司

【问题讨论】:

    标签: google-sheets


    【解决方案1】:

    这样做是这样的:

    =QUERY(TESTDATA!A1:D16, "SELECT A, D, SUM(C) WHERE 1=1 "&
     IF(AND(M3="NAME",N3="Customer"), " GROUP BY A, D PIVOT B", 
     IF(AND(N3 = "Customer"," AND A = '"&M3&"' GROUP BY A, D PIVOT B"), 
                            " AND A = '"&M3&"' GROUP BY A, D PIVOT B",
                            " AND A = '"&M3&"' 
                              AND D = '"&N3&"' GROUP BY A, D PIVOT B")), 1)
    

    【讨论】:

      【解决方案2】:

      有时,在应用QUERY 之前FILTER 结果更容易:

      =ArrayFormula(QUERY(FILTER(A1:D16, A1:A16=M3, D1:D16=N3), "SELECT Col1, Col4, SUM(Col3) GROUP BY Col1, Col4 PIVOT Col2 LABEL Col1 'Name', Col4 'Customer'",0))

      如您所见,这需要使用 Colx 表示法而不是字母来指示 SELECT 子句中的列;但这实际上(在我看来)更加通用,因为如果您在现有源数据之前插入列,则不必重写 QUERY

      您还会注意到我需要LABEL 前两列,因为FILTER 将有FILTER 删除标题。 (事实上​​,出于这个原因,公式中的范围可以很容易地从第 2 行开始,例如,A2:A16 等)

      最后,至少在您的示例电子表格中,您不需要工作表名称来引用源范围,因为结果在同一个工作表中。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-02-18
        • 2012-08-23
        • 2013-10-18
        • 2017-08-23
        • 1970-01-01
        • 2021-03-25
        • 1970-01-01
        相关资源
        最近更新 更多