performance - Google 电子表格中的 SUMIFS 函数

标签 performance google-sheets google-query-language

我正在尝试拥有与SUMIFS类似的功能(例如SUMIF,但具有多个Google 电子表格中的单一标准)。 MS-Excel 内置了此函数 ( http://office.microsoft.com/en-us/excel-help/sumifs-function-HA010342933.aspx?CTT=1 )。

我尝试使用 ArrayFormula ( http://support.google.com/docs/bin/answer.py?hl=en&answer=71291 ),类似于 SUMIF:

=ARRAYFORMULA(SUM(IF(A1:A10>5, A1:A10, 0)))

通过添加AND:

=ARRAYFORMULA(SUM(IF(AND(A1:A10>5,B1:B10=1), C1:C10, 0)))

但是 AND 函数没有获取 ArrayFormula 指令,并且始终返回 FALSE。

我能找到的唯一解决方案是使用QUERY,这似乎有点慢且复杂:

=SUM(QUERY(A1:C10,"Select C where A>5 AND B=1"))

我的目标是用许多要计算的值填充一个表(类似于数据透视表):

=SUM(QUERY(DataRange,Concatenate( "Select C where A=",$A2," AND B=",B$1)))

有人设法以更简单、更快的方式做到这一点吗?

最佳答案

在我看来,轻松制作类似 SumIFS 的函数的最简单方法是将 FILTER 和 SUM 函数结合起来。

SUM(FILTER(sourceArray, arrayCondition_1, arrayCondition_2, ..., arrayCondition_30))

例如:

SUM(FILTER(A1:A10;A1:A10>5;B1:B10=1)

说明:FILTER() 过滤 A1:A10 中的行,其中 A1:A10 > 5 且 B1:B10 = 1。然后 SUM() 对这些单元格的值求和。

这种方法非常灵活,并且可以轻松地创建 COUNTIFS() 函数(只需使用 COUNT() 而不是 SUM())。

关于performance - Google 电子表格中的 SUMIFS 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9128987/

相关文章:

mysql - 多表还是单表有多种类型?

javascript - 具有复杂公式的 setValue() 或 setFormula()/"You do not have permission to call setFormula"

google-sheets - Google 电子表格导入范围#REF!错误(随机)

google-apps-script - 如何将数据插入到特定行号(或第一个空行)?

sorting - 排序查询数据透视表 - Google 表格

google-sheets - QUERY Google Sheets 函数中同一字符串中的引号和撇号

arrays - Google Sheets 查询 - 不像部分匹配

python - 在没有设置的情况下更快地获得两个列表的差异

c++ - 将值作为函数参数传递还是计算两次?

android - 在Android中,如何连续接收GPS位置?