Google sheets 根据多个标准加速筛选和汇总结果?
我正在筛选,然后根据日期范围和列是否包含多个可能值之一对事务数据求和 示例数据Google sheets 根据多个标准加速筛选和汇总结果?,google-sheets,Google Sheets,我正在筛选,然后根据日期范围和列是否包含多个可能值之一对事务数据求和 示例数据 A | B | C | D -----------|-----|---------------------------------------------------|------- 11/12/2017 | POS | 6443 09DEC17 C , ALDI 84 773 , OFFERTO
A | B | C | D
-----------|-----|---------------------------------------------------|-------
11/12/2017 | POS | 6443 09DEC17 C , ALDI 84 773 , OFFERTON GB | -3.87
18/12/2017 | POS | 6443 16DEC17 C , CO-OP GROUP 108144, STOCKPORT GB | -6.24
02/01/2018 | POS | 6443 01JAN18 , AXA INSURANCE , 0330 024 1229 GB | -220.10
我现在有下面的公式,虽然有效,但速度非常慢
=sum(
iferror(
filter(
Transactions!$D:$D,
Transactions!$A:$A>=date(A2,B2,1),
Transactions!$A:$A<=date(A2,B2,31),
regexmatch(Transactions!$C:$C, "ALDI|LIDL|CO-OP GROUP 108144|SPAR|SAINSBURYS S|SAINSBURY'S S|TESCO STORES|MORRISON|MARKS AND SPENCER , HAZEL GROVE|HAZELDINES|ASDA")
)
,0
)
) * -1
=sum(
伊弗罗(
滤器(
交易!$D:$D,
交易记录!$A:$A>=日期(A2,B2,1),
交易!$A:$A
结果是这样一个表:
year() sum(month()1()) sum
2017 11 3.87
2017 12 6.24
如果需要,请添加标签。带标签的示例查询文本:
“按年份(Col1)、月份(Col1)+1、-1*总和(Col2)分组,按年份(Col1)、月份(Col1)+1标签年份(Col1)‘年’、月份(Col1)+1‘月’”
结果是:
Year Month sum
2017 11 3.87
2017 12 6.24
解释
- 单一公式报告减少了筛选函数的数量,因此必须更快地工作
- 使用了查询语法
这个奇妙的方法在生成输出方面做了很多工作……还有一个问题,是否可以在不输出任何内容时包含结果为0的空月行?要包含空月,需要将它们添加到数据中。创建“虚拟”月:=query({date(2018,1,1),0};{date(2018,2,1),0};…过滤器(…)},sql文本,0)
year() sum(month()1()) sum
2017 11 3.87
2017 12 6.24
Year Month sum
2017 11 3.87
2017 12 6.24