Google sheets 3个最新值,但仅适用于特定用户

Google sheets 3个最新值,但仅适用于特定用户,google-sheets,google-sheets-formula,google-query-language,top-n,Google Sheets,Google Sheets Formula,Google Query Language,Top N,我试图获得3个最新值的平均值,但仅针对特定用户 C的范围是日期,G的范围是我试图找到的平均值,A的范围是用户 =ArrayFormula(IFERROR(average(query(IF(len('Month Tracker'!$C:$C),{ROW('Month Tracker'!$C:$C),'Month Tracker'!$G:$G},),"Select Col2 where Col2>0 order by Col1 Desc limit 3")))) 此公式用

我试图获得3个最新值的平均值,但仅针对特定用户

C的范围是日期,G的范围是我试图找到的平均值,A的范围是用户

=ArrayFormula(IFERROR(average(query(IF(len('Month Tracker'!$C:$C),{ROW('Month Tracker'!$C:$C),'Month Tracker'!$G:$G},),"Select Col2 where Col2>0 order by Col1 Desc limit 3"))))

此公式用于获取所有用户最近3个值的平均值。然而,我需要它通过
月跟踪器'查看$A$2:$A
并且仅当用户在
月跟踪程序'中时才应用公式$A$2:$A
匹配当前工作表中
A2
中的用户。。。仅为该用户查找最近3个值的平均值。

您的公式实际上不会返回包含最新日期的行。它只返回位于底部的行。它可能只是发生在你最近的日期在底部,但公式从来没有真正检查它,只要他们在底部

另一件事,
ArrayFormula
在这种情况下似乎不需要

这是您可以用来解决当前问题的方法:

=IFERROR(AVERAGE(QUERY(IF('Month Tracker'!$C:$C,{'Month Tracker'!$C:$C,'Month Tracker'!$G:$G,'Month Tracker'!$A:$A},),"SELECT Col2 WHERE Col2>0 AND Col3="""&A2&""" ORDER BY Col1 DESC LIMIT 3")))

如果你真的需要,你可以用
ArrayFormula

来包装它。你完全正确。。。恰好最晚的日期在底部。此公式工作完美,不需要阵列公式包装。我花了无数个小时试图让这个公式起作用。。。我真的很感谢你的帮助!