Google 工作表 FILTER() 和 QUERY() 不能与 SUM() 一起使用

Google Sheets FILTER() and QUERY() not working with SUM()

我正在尝试从一个 sheet 中提取数据并在另一个上求和。这是构建到报告中的 GA 数据,所以我按登陆页面和设备类型划分了会话,并希望以不同的方式对它们进行分组。

我通常使用 FILTER() 来处理这类事情,但它总是返回 0 总和。认为这可能是 FILTER() 的一个奇怪的边缘情况,我改用 QUERY() 代替。这给了我一个错误,但是 Google 搜索没有提供太多关于错误实际含义的文档。猜测它可能表明数据类型有问题(即不是数字),我将源的格式从 "Automatic" 更改为 "Number",但无济于事。

也许是咖啡不够用,我不知道为什么这两个函数都无法按条件进行简单的查找和求和。

FILTER() 函数

SUM(FILTER(AllData!C:C,AllData!A:A="/chestnut/",AllData!B:B="desktop"))

没有错误,但是 returns 0 无论过滤器参数如何。

QUERY() 函数

QUERY(AllData!A:G, "SELECT SUM(C) WHERE A='/chestnut/' AND B='desktop'",1)

返回错误:

Unable to parse query string for Function QUERY parameter 2: AVG_SUM_ONLY_NUMERIC

示例数据:

 landingPage | deviceCategory | sessions
-------------|----------------|----------
 /chestnut/  | desktop        |        4
 /chestnut/  | desktop        |        2
 /chestnut/  | tablet         |        5
 /chestnut/  | tablet         |        1
 /maple/     | desktop        |        1
 /maple/     | desktop        |        2
 /maple/     | mobile         |        3
 /maple/     | mobile         |        1

我认为求和不起作用,因为您的数字是文本格式的。

看看这些是否有效? (更改范围以适应)

使用 FILTER()

=SUM(FILTER(VALUE(AllData!C:C),AllData!A:A="/chestnut/",AllData!B:B="desktop"))

使用查询()

=ArrayFormula(QUERY({AllData!A:B, VALUE(AllData!C:C)}, "SELECT SUM(Col3) WHERE Col1='/chestnut/' AND Col2='desktop' label SUM(Col3)''",1))

使用 SUMPRODUCT()

=SUMPRODUCT(VALUE(AllData!C2:C),AllData!A2:A="/chestnut/",AllData!B2:B="desktop")