google-sheets - 如何在 ARRAYFORMULA 中使用 AVERAGEIFS
问题描述
我正在尝试使用AVERAGEIFS
inside ARRAYFORMULA
。QUERY
查看其他问题,我得出的结论是,不使用函数是不可能的。
我的目的是在共享相同 ID 时对列的值进行平均。
我认为这个问题非常接近我的需要,但我无法在我自己的工作表上复制和调整它的解决方案。
在这张表中,我显示了我期望的结果(我通过拖动公式得到它)。我还查看了Query Language Reference,但未成功。
非常感谢您的时间和精力。
解决方案
所以公式应该是
=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 不是数组友好的。AFAIK countif 和 sumif 是这个系列中唯一对数组友好的函数,而 countifs、sumifs、averageif 等则不是,这似乎仍然很奇怪。
推荐阅读
- json - 在 ruby 中自动转换 JSON 编码的数据
- java - Spring Tool Suite 中的错误“生命周期配置未涵盖插件执行:org.apache.maven.plugins
- xml - xslt 在同一级别上对多个 for-each 循环进行排序
- java - Java:在绘图线上标记的某些坐标
- jquery - 如何使用 ajax 提交多个表单并等待所有结果?
- java - 代码改进:统计数组中元素出现的次数,返回重复次数最多的元素
- smalltalk - 如何更改 SpTextPresenter 中的字体?
- kubernetes - Nginx 控制器中的 SSL 直通问题
- php - 如何处理elasticsearch range Beetween 2个日期
- python - 组合非唯一外键创建主键?