【问题标题】:Using Google Spreadsheets QUERY to Filter使用 Google 电子表格 QUERY 进行过滤
【发布时间】:2017-01-28 07:40:50
【问题描述】:

我有the following google sheet 在哪里:

  • Col a= 数量
  • Col b= 产品代码,我将其分为 C 和 H。

我想根据不同的“过滤器”知道数量...这个过滤器是C11和H11之间的字段,它们是可选的。有 6 种可能的过滤器。

它使用位于 H12 中的 =QUERY 公式工作,它返回过滤器匹配的数量值的总和...

但是有可能将过滤器留空以获得“全部”...

查询如下:

=QUERY(A1:H7, "select sum(A) where C contains '"&C11&"' and lower(D) contains lower('"&D11&"') and E contains '"&E11&"' and lower(F ) 包含 lower('"&F11&"') 且 lower(G) 包含 lower('"&G11&"') 且 lower(H) 包含 lower('"&H11&"') ",-1)

我的问题在于匹配类型:其中 C 包含 '"&C11&"' 和...

应该使用“ma​​tches”进行比较,而不是使用“contains”。这样一来,它应该算,但是那么它就不会接受空过滤器。

我怎样才能让它只在字段被填写时才计数??

过滤器现在有什么问题?它计算“4”匹配,因为模型匹配“1”发生在模型为 1 或 21 时,在列 D 中我正在寻找值 X 并且还计算值 XN,因为它包含“X”。如果公式更改为“匹配”而不是“包含”,则不允许我将其留空。

谢谢!

【问题讨论】:

    标签: google-sheets google-spreadsheet-api google-sheets-api


    【解决方案1】:

    Karl_S 公式很棒,但它没有将 A 列中的数量相加。将他的方法应用于 SUMIFS 似乎可以做到:

    =SUMIFS(A2:A7,C2:C7, IF(ISBLANK(C11), "<>" ,C11),D2:D7, IF(ISBLANK(D11), "<>" ,D11),E2:E7, IF(ISBLANK(E11), "<>" ,E11),F2:F7, IF(ISBLANK(F11), "<>" ,F11),G2:G7, IF(ISBLANK(G11), "<>" ,G11),H2:H7, IF(ISBLANK(H11), "<>" ,H11))
    

    【讨论】:

      【解决方案2】:

      改用这个公式:

      =COUNTIFS(C2:C7, IF(ISBLANK(C11), "<>" ,C11), D2:D7, IF(ISBLANK(D11), "*",D11), E2:E7, IF(ISBLANK(E11), "<>",E11), F2:F7, IF(ISBLANK(F11), "*",F11), G2:G7, IF(ISBLANK(G11), "*",G11), H2:H7, IF(ISBLANK(H11), "*",H11))
      

      如果其中一个选项为空,它将匹配该列中的所有项目。否则它应该进行完全匹配。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-09-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-11-10
        相关资源
        最近更新 更多