如何在ARRAYFORMULA中使用AVERAGEIFS

时间:2019-10-24 13:37:24

标签: google-sheets average google-sheets-formula array-formulas google-sheets-query

我正在尝试在AVERAGEIFS中使用ARRAYFORMULA。看看其他问题,我得出的结论是,不使用QUERY函数是不可能的。

我的意图是在列值共享相同ID时对其求平均值。

我认为this question非常接近我的需求,但是我无法在自己的工作表上复制和调整其解决方案。

In this sheet我展示了我期望的结果(我通过拖动公式获得了结果)。我也未成功查看Query Language Reference

非常感谢您的时间和精力。

2 个答案:

答案 0 :(得分:2)

所以公式应该是

=ArrayFormula(iferror(sumif(A2:A,A2:A,B2:B)/countif(A2:A,A2:A)))

this

请注意,如果points列中有任何文本值,它仍然会返回结果(因为count大于零)-您可以改用

=ArrayFormula(if(isnumber(B2:B),(sumif(A2:A,A2:A,B2:B)/countif(A2:A,A2:A)),""))

如果对于任何ID,混合使用文本行和数字行,则返回的结果将小于平均或平均公式。这是此方法的局限性。您不能在其中添加额外条件(该B列必须包含数字),因为您需要countifs,并且countifs对数组不友好。仍然很奇怪,FAIFK countif和sumif是该系列中仅有的数组友好型函数,而countifs,sumifs和averageif等不是数组友好型。

答案 1 :(得分:2)

您可以这样做:

=ARRAYFORMULA(IFERROR(VLOOKUP(A2:A; QUERY(A2:B; "select A,avg(B) group by A"); 2; )))

0