我正在尝试在AVERAGEIFS
中使用ARRAYFORMULA
。看看其他问题,我得出的结论是,不使用QUERY
函数是不可能的。
我的意图是在列值共享相同ID时对其求平均值。
我认为this question非常接近我的需求,但是我无法在自己的工作表上复制和调整其解决方案。
In this sheet我展示了我期望的结果(我通过拖动公式获得了结果)。我也未成功查看Query Language Reference。
非常感谢您的时间和精力。
答案 0 :(得分:2)
所以公式应该是
=ArrayFormula(iferror(sumif(A2:A,A2:A,B2:B)/countif(A2:A,A2:A)))
请注意,如果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)