【发布时间】:2020-12-09 16:15:06
【问题描述】:
我正在使用以下公式来计算总计行,该行计算列中百分比的平均值。但是,由于数据中包含一些空值,因此计算的平均值不正确。
={"TOTAL",arrayformula(transpose(query(transpose(query({(B16:M19)},"Select " & TEXTJOIN(",",true,arrayformula(if(filter($B$15:15,$B$15:15<>false),"Sum(Col" & Column($B$15:$M$15) - Column(B$15) + 1 & ")/Count(Col" & Column($B$15:$M$15) - Column(B$15) + 1 & ")"))))),"select Col2 format Col2 '0.00%'",)*100%))}
有时,我的生产电子表格也会出现错误,
Unable to parse query string for Function QUERY parameter 2: AVG_SUM_ONLY_NUMERIC
或
Unable to parse query string for Function QUERY parameter 2: TypeError: Cannot read property 'get' of undefined
如果我像这样强制范围,这些就会消失:
(B16:M19)+0 .... or.... N(B16:M19)
但这会导致平均值计算不正确,因为平均值考虑了被替换的 0 或现在的空单元格。如何避免这种情况并正确计算值?
P.S:我不得不对范围进行硬编码,因为我不知道如何使这个公式更加动态。如果有人有想法,请与我分享。
这是样本表。 FTR Table
【问题讨论】:
-
您能否在总计行中显示您期望的值,并解释这些值的基础?您的意思是 2020 年 1 月 1 日的总平均值应该是 50%(alex 和 mini 的平均值为 0% 和 100%),而不是 25%(alex 的平均值为 0%、0%、0% 和 100% 、乔、迈克和迷你)?
-
2020 年 1 月 1 日的总平均值应为 100%,因为平均值应不包括任何空值或 0。
-
下面的答案不适合你吗?
-
没有。它仅适用于 1 列。它应该为所有列动态生成。
标签: google-sheets count sum average google-query-language