使用Google Spreadsheets QUERY过滤

时间:2017-01-27 19:59:51

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

我有the following google sheet其中:

  • Col a = quantity
  • Col b =产品代码,我在C和H之间分配。

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

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

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

查询如下:

= QUERY(A1:H7,“选择总和(A),其中C包含'”& C11&“'和更低(D)包含低('”& D11&“')和E包含''& ; E11&“'和低(F)包含低('”& F11&“')和低(G)包含低('”& G11&“')和低(H)包含低('&'&'') ; H11&“')”, - 1)

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

而不是使用“contains”,它应该使用“匹配”进行比较。通过这种方式,它应该算得上,然后它不会接受空过滤器。

如果字段填满,我怎样才能计算它?

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

谢谢!

2 个答案:

答案 0 :(得分:0)

请改用此公式:

=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))

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

答案 1 :(得分:0)

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))