在 Google 表格中使用包含过滤器的 ARRAYFORMULA
Posted
技术标签:
【中文标题】在 Google 表格中使用包含过滤器的 ARRAYFORMULA【英文标题】:Using an ARRAYFORMULA that contains FILTERs in Google Sheets 【发布时间】:2021-10-09 00:02:51 【问题描述】:我正在尝试计算列表中每个人B3:B
的某些数据的加权平均值。我根据过滤器从单独的工作表中提取值和权重,以匹配我当前工作表的该行中的人,并且不包含空数据。
这是计算单个人加权平均值的公式:
=AVERAGE.WEIGHTED(FILTER(Form!$G$2:$G, Form!$C$2:$C = $B3, Form!$J$2:$J <> ""), FILTER(Form!$J$2:$J, Form!$C$2:$C = $B3, Form!$J$2:$J <> ""))
但尝试排列它以避免在列的每个单元格中都有公式仍然只给我第一个加权平均值。
=ARRAYFORMULA(AVERAGE.WEIGHTED(FILTER(Form!$G$2:$G, Form!$C$2:$C = $B3:B, Form!$J$2:$J <> ""), FILTER(Form!$J$2:$J, Form!$C$2:$C = $B3:B, Form!$J$2:$J <> "")))
有没有办法让它工作?
【问题讨论】:
ARRAYFORMULA 不支持 AVERAGE.WEIGHTED & FILTER 您能否提供一个包含样本输入和预期输出的样本表? Share a test sheet 【参考方案1】:=ArrayFormula(VLOOKUP(B2:B,QUERY(QUERY(Form!C:J,"select C,G*J,J where J is not null",1),"select Col1,sum(Col2)/sum(Col3) group by Col1",1),2,FALSE))
-
用第一个
QUERY
计算每一行的加权值
计算每个人的加权平均值与第二个QUERY
在输出上执行ARRAYFORMULA(VLOOKUP
【讨论】:
以上是关于在 Google 表格中使用包含过滤器的 ARRAYFORMULA的主要内容,如果未能解决你的问题,请参考以下文章
使用 Google 表格中的单个公式从范围创建动态排序和过滤列表
从网站构建器HTML内容框中,使用javascript从Google电子表格中过滤文本/名称