【问题标题】:Get the last 5 results of column C or D if column A or B is equal to ___?如果 A 或 B 列等于 ___,则获取 C 或 D 列的最后 5 个结果?
【发布时间】:2020-01-03 03:22:24
【问题描述】:

我知道标题是一个可怕的描述,对不起。

基本上,我有一张包含篮球比赛结果的表格。所以在A栏中,我有主队。在 B 栏中,我有客队。 C列主队得分。在 D 栏中,客队得分。每分钟大约有 500 行数据。

我想做的是:

假设我想获得纽约尼克斯队最近 5 场比赛的平均得分。最近的游戏位于表格底部,第一个/最旧的游戏位于表格顶部。

因此,在 A 列和 B 列中“纽约尼克斯队”的底部/最后 5 个实例中,我想要 C(如果纽约尼克斯队在 A 列中)和 D(如果在 B 列中)结果的平均值.

例如,如果我只想要最后 5 场主场比赛,我知道该怎么做(所以在这种情况下,我基本上会在最后 5 次出现的 A 列中查询 C 列的后 5 个结果是纽约尼克斯队)。当我在寻找纽约尼克斯队出现在 A 列或 B 列时,我不知道该怎么做,然后必须从 C 列或 D 列获取平均值。

谁能帮忙?

【问题讨论】:

  • 你试过averageifs()吗?那将是我的第一次尝试。
  • 我不认为 averageifs() 允许我获取最后___个结果,它只是根据我输入的范围计算列。我不想手动调整范围每次获得最后___个结果。

标签: if-statement google-sheets average array-formulas google-sheets-query


【解决方案1】:

这会将您的 4 列转换为 2 列:

=ARRAYFORMULA(SPLIT(TRANSPOSE(SPLIT(QUERY(TRANSPOSE(QUERY(TRANSPOSE(
 IF(A2:B<>"", "♠"&A2:B&"♦"&C2:D, )),,999^99)),,999^99), "♠")), "♦"))

以及最近 5 场比赛的平均得分:

=ARRAYFORMULA(AVERAGE(QUERY(SPLIT(TRANSPOSE(SPLIT(QUERY(TRANSPOSE(QUERY(TRANSPOSE(
 IF(A2:B<>"", "♠"&A2:B&"♦"&C2:D, )),,999^99)),,999^99), "♠")), "♦"), 
 "select Col2 
  where lower(Col1) contains 'new york knicks' 
  offset "&COUNTIF(A2:B, "new york knicks")-5)))

【讨论】:

  • 谢谢,然后你会如何使用它来反对?即,当纽约尼克斯队是 A 列时,我想要 D 列,而当 NYK 是 B 列时,我想要 C 列,用于计算得分。不知道如何编辑您发送的第一个公式以获取此信息。
  • 不确定我是否明白你在追求什么……你能详细解释一下吗?您想要与 NYK 交手的任何球队最近 5 场赛事的平均得分吗?
  • 是的,完全正确。有没有一种类似于你的第一个公式的方法?
  • 当然,只需切换列。而不是C2:D 使用{D2:D,C2:C}
  • 最后一个。如何编辑原始公式以同时包含支持点和反对点?所以它会让球队在A列,然后在B列得分,在C列得分反对?在原始公式中,您展示了如何执行其中的 A+B 列部分,并且这是有效的。如何调整公式,以便 C 列结果也得到输出(得分),D2:D,C2:C 的东西?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-07-01
  • 1970-01-01
相关资源
最近更新 更多