我有一些问题让SUMIFS做我想做的事(也许是因为它不能)。这正是我尝试设置的内容:
基本上,我试图了解各种数据服务器上的数据是如何被打破的。所以我有一个我关心的扩展列表(让我们说.docx,.xlsx和.pptx)和我关心的服务器列表(让我们说serv_a,serv_b和serv_c) 。鉴于我拥有的大量工作表,包含所有服务器的所有数据以及我需要的所有文件,以获取服务器上具有我关注的扩展名的文件数。
这是我现在使用的公式(它不起作用)
=SUMIFS(data!$C:$C, data!$A:$A, A2, data!$B:$B, filter!$A:$A)
数据!$ C是服务器上的扩展计数,数据!$ A是服务器名称,A2是我要过滤的服务器名称,过滤!$ A是我想要的扩展名列表过滤。
我确实认为过滤器的扩展列表是破坏事物的。给定单个值(.docx),我可以在给定服务器上计算143,567个文件,但查询返回1.
谢谢!
答案 0 :(得分:2)
如果您输入一系列单元格作为条件,则必须将其作为array formula输入(请参阅链接)。
您可以通过按 Ctrl + Shift + Enter 来实现。
您的公式应如下所示:
{=SUMIFS(data!$C:$C, data!$A:$A, A2, data!$B:$B, filter!$A:$A)}
然后返回一个值数组,这些值是每个条件的SUMIFS
结果
要将其返回到单个值,请使用接受数组参数的SUM
对其进行求和
最终公式应如下所示,再次使用 Ctrl + Shift + Enter 输入。 HTH。
{=SUM(SUMIFS(data!$C:$C, data!$A:$A, A2, data!$B:$B, filter!$A:$A))}
加分:致barry houdini的信用
这个非数组公式的工作方式相同:
=SUMPRODUCT(SUMIFS(data!$C:$C, data!$A:$A, A2, data!$B:$B, filter!$A:$A))