使用QUERY获取最近x个符合条件的条目的平均值

时间:2019-02-15 20:03:08

标签: google-sheets

我正在尝试通过将所有代码更新为QUERY函数来优化用于工作电子表格的代码。我遇到的一件事是,我平均匹配特定条件的最后x行。

我希望以下公式可以工作:

=QUERY(Ladder!A2:AE,"Select Avg(J) where F = '"&H$1&"' order by B desc limit "&$C$5)

我认为这将返回最后3行的平均值-但我收到了

  

COL_IN_ORDER_MUST_BE_IN_SELECT错误。

我只希望公式返回单个单元格,其中平均值为%。

我意识到我可以使用以下代码,然后使用QUERY的平均值,但我希望能够为每个不同的牌组返回%值。

以下是电子表格精简版的链接:

Spreadsheet

梯子:我在哪里输入数据 梯形图过滤器:根据“梯形图统计”标签中的条件,数据将根据查询命令过滤数据 阶梯统计:我可以在其中查看所有统计信息并生成各种统计报告

目前一切正常,但是如您所见,它非常笨拙且繁琐。我已经解决了大部分问题,但您会在“阶梯统计”选项卡上找到这种情况-B3 =“”和C5!= NULL。它旨在提供每个卡组最近播放的x场比赛的统计信息。

1 个答案:

答案 0 :(得分:1)

您可以使用像这样的双重查询并将单元格的格式设置为%

=QUERY(QUERY(Ladder!A2:AE, 
 "select J 
  where F = '"&H$1&"' 
  order by B desc 
  limit "&$C$5, 0),
 "select avg(Col1)
  label avg(Col1)''", 0)


或者您可以使用AVERAGE公式并单击两次以获取小数位:

=AVERAGE(QUERY(Ladder!A2:AE, 
 "select J 
  where F = '"&H$1&"' 
  order by B desc 
  limit "&$C$5, 0))