【问题标题】:How to pull in only the most recent 10 results from a dataset?如何仅从数据集中提取最近的 10 个结果?
【发布时间】:2019-10-21 13:10:12
【问题描述】:

有一张包含大量运动数据的表格...

第 1 行包含每一列的标题。下面是个别游戏的数据。这是一个简单的外观概念。

HomeTeam,  AwayTeam,  HomeGoals, AwayGoals, TotalGoals, Result  
Bruins,    Leafs,     3,         2,         5,          HomeWin  
Coyotes,   Jets,      3,         3,         6,          Tie  
Panthers,  Lightning, 2,         3,         5,          AwayWin  
Predators, Kings,     1,         4,         5,          AwayWin  
Bruins,    Blues,     2,         2,         4,          Tie


etc  

所以我想做的是从 x 队的最后 x 场比赛中提取 HomeGoals 的价值。

例如,假设我有 1000 行数据,我如何才能最好地获得 Bruins(球队)作为主队最近 4 场比赛的 HomeGoals 的总和或平均值 - 所以他们最近出现的 4 次在 A 列?

同样,我如何计算熊队最近 x 个主场比赛中的客场胜利数(最后一列)?就像我有棕熊队最近的 10 场主场比赛一样,我想计算 AwayWin 是结果的次数。

数据从最旧到最新排序(但如果需要我可以翻转)。

【问题讨论】:

  • AVERAGE(OFFSET(C2,COUNT(C:C),0,-4)),像这样?它获取 c2 列最后 4 行的平均值。 (2+1+2+3)/4 =2
  • 问题是我需要添加另一个条件。我不只是想要最近的 4 行...当 x 是主队时,我想要最近的 4 行。现在,根据您发布的内容,它将只占用底部的 4 行...我知道我可以通过 vlookup 来做到这一点,然后只需调整我想选择的范围。但我总是向其中添加更多数据,因此需要不断进行操作。必须有一种更简单、更自动化的方法来做到这一点,这就是我正在寻找的。​​span>
  • AverageIf 可以将主队与 x 进行比较。
  • 所以使用averageifs(),设置任意数量的标准。或者 countifs() 和 sumifs()...
  • 好吧,你没有显示日期......所以如果数据是从上到下最新排序的,那么取前 5 个(或 10 个 - 你也不清楚),或者如果最新的在底部,然后取最后 5 或 10 个...

标签: filter google-sheets average google-sheets-formula google-sheets-query


【解决方案1】:

单元格J2

=AVERAGE(IFERROR(QUERY({A2:F}, "select Col3 where Col1='Bruins' offset "&
 COUNTA(FILTER(A:A, A:A="Bruins"))-4)))

细胞J4

=AVERAGE(IFERROR(QUERY({A2:F}, "select Col3 where Col1='Bruins' and Col6='AwayWin' offset "&
 COUNTA(FILTER(A:A, A:A="Bruins", F:F="AwayWin"))-2)))

【讨论】:

  • 太棒了,谢谢!让它工作。下一个问题......在那个公式中,我最理想的说法是使用单元格引用而不是 Bruins。那么关于 where Col1='Bruins' 以及 A:A="Bruins" 的部分 - 有没有办法让它引用一个单元格?在 A1 中说我有 Bruins...如果我把这个公式放在 B1 中,我希望它把我在单元格 A1 中的任何团队的输出 - 所以如果我将 A1 中的团队名称切换为 Panthers,公式将自动重新计算。据我所知,您发送的公式需要手动编辑公式中的团队名称。
  • Col1='Bruins' 更改为 Col1='"&A1&"'A:A="Bruins" 更改为 A:A=A1
  • 谢谢,我会确保按照您发送的链接中的说明进行操作。我有最后一个问题,然后我准备好了。如何使用该查询对文本进行计数?因此,在您发送的代码中,我可以获得平均值。假设在您发布的那张照片中,我想计算“AwayWin”在熊队最近的 4 场主场比赛中发生的次数(从底部开始)。即,我希望计数函数返回 3 个 AwayWins(第 25、21、17、16 行,最后 4 个 Bruins 主场比赛,3 AwayWins)。再次感谢迄今为止的所有帮助。
  • @Grandaddycrunk =IF(COUNTA(QUERY({A2:F}, "select Col3 where Col1='Bruins' and Col6='AwayWin' offset "& COUNTA(FILTER(A:A, A:A="Bruins", F:F="AwayWin"))-4))>3, COUNTA(QUERY({A2:F}, "select Col3 where Col1='Bruins' and Col6='AwayWin' offset "& COUNTA(FILTER(A:A, A:A="Bruins", F:F="AwayWin"))-4)), COUNTA(IFERROR(QUERY({A2:F}, "select Col3 where Col1='Bruins' and Col6='AwayWin'")))) - i.stack.imgur.com/8Y1nK.png
【解决方案2】:

在 SO 上,每个原始帖子应该是一个 Q,所以我选择了:

pull in the value of HomeGoals for the last x games from x team

假设日期在 A 列,HomeTeam 在 B1。

请尝试x 用于 I1 的最后一场比赛,x 用于 J1 的团队,并且:

 =sum(query(SORT(A2:G,1,),"select Col4 where Col2='"&J1&"' limit "&I1))

【讨论】:

    猜你喜欢
    • 2017-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-28
    • 2016-01-14
    • 2013-04-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多