有谁知道更有效的方式来写这个?我似乎在使用excel时遇到了很多问题,因为我的excel电子表格中有大约30个略有不同的版本。
=SUMPRODUCT((Data!B2:B1000="Human Resources")*(Data!E2:E1000<>"Resolved")*(Data!E2:E1000<>"Closed")*(Data!E2:E1000<>"Cancelled"))
我已经研究过了这个问题,但我似乎无法让它工作。
答案 0 :(得分:3)
COUNTIFS
应该完成这项工作,比如
=COUNTIFS(B:B,"Human Resources",E:E,"<>Resolved",E:E,"<>Closed",E:E,"<>Cancelled")
答案 1 :(得分:1)
我认为你所追求的是这样的(注意间距在重点范围之间被夸大,删除以供实际使用):
=SUMPRODUCT((Data!B2:B1000="Human Resources") * (Data!E2:E1000<>"Closed") , (Data!B2:B1000="Human Resources") * (Data!E2:E1000<>"Cancelled" ) , (Data!B2:B1000="Human Resources") * (Data!E2:E1000<>"Resolved" ))
测试数据:
预计:4
结果:4
我尝试了相同的公式,将引用更改为指向较大的本地集,随机抽样1000行,没有明显的减速或警告。绝不是标记或优化,但目的很明确。
较大的数据集可能会导致您的计算机耗尽可用索引或原始内存,如果您怀疑是这种情况,请对数据集进行分区并一次执行一个块(也许先尝试将其分成两半尝试500一次完成行),在完成所有块之后对每个块进行求和。
最后一点,对于子孙后代,SUMPRODUCT依赖于版本。如果遇到问题,可以将其更改为严格的SUM公式,只需要更多的工作。