我试图找到最后3个实例的平均值。我正在使用AVERAGEIF语句,它将计算整个范围的平均值,但我需要它只计算它找到的最后3个实例(如果少于3个可用,则更少)。我需要G和H的整个专栏都能获得球队最后3场比赛的平均值。
这就是我所拥有的:
=AVERAGEIF(B3:C17,B17,D3:E17)
答案 0 :(得分:2)
您可以使用数组公式执行此操作(必须使用键 Ctrl + Shift + 输入)输入... <... / p>
基本步骤是:
INDIRECT
中的AVERAGEIF
范围从B- that_row 到C- current_row 和D_ that_row 到E- current_row 因此,在单元格F17
中,您将拥有公式
{=AVERAGEIF(INDIRECT("B"&LARGE(IF(--($B$3:B17=B17)+($C$3:C17=B17),ROW($B$3:B17),1),3)&":"&CELL("address",C17)),B17,INDIRECT("D"&LARGE(IF(--($B$3:B17=B17)+($C$3:C17=B17),ROW($B$3:B17),1),3)&":"&CELL("address",E17)))}
我们重复一些逻辑,因为我们有两个范围(标准范围和平均范围)。
IF(--($B$3:B17=B17)+($C$3:C17=B17),ROW($B$3:B17),1)
表示如果列B或(使用+
)列C的值为B17,请给我行号,否则为1(我们的&lt; 3情况......我们可以制作这个3,团队名称的第一行)LARGE(...,3)
会给我们这个数组中的第三高 - &gt;具有我们团队名称的第三高行号INDIRECT("B"&...&":"&CELL("address",C17))
将使用我们排在当前行的第三个最高行号,列B和C AVERAGEIF
中完全相同的操作,但使用此INDIRECT
范围以及D和E列的等效项有趣的问题!祝好运。并记得使用 Ctrl + Shift + Enter 输入它!
编辑上面的前两行出现#NUM!
错误 - 这是因为LARGE
函数试图获得2的数组中的第三大函数!另请注意,在某些情况下,列字母必须是绝对的(即$
)才能复制到 Away 列。所以更新了公式:
{=AVERAGEIF(INDIRECT("B"&LARGE(IF(--($B$3:$B17=B17)+($C$3:$C17=B17),ROW($B$3:$B17),1),MIN(3,ROW()-2))&":"&CELL("address",$C17)),B17,INDIRECT("D"&LARGE(IF(--($B$3:$B17=B17)+($C$3:$C17=B17),ROW($B$3:$B17),1),MIN(3,ROW()-2))&":"&CELL("address",$E17)))}
3
替换为MIN(3,ROW()-2)
,以便我们得到3,如果有,则为1或2,如果我们位于前两个数据行之一答案 1 :(得分:1)
好的,我过早地发布了这个并尝试删除它,当我意识到它不会工作。它现在应该工作....提供你添加另一个条件,即A列中的游戏日期。请记住这是一个数组公式,所以点击ctrl + shift + enter。 A栏中的日期; B栏中的小组; D栏中的统计数据。此公式可以位于工作表上的永久性位置,因此您可以输入团队名称(此处显示为F13)以获取最近的三个统计数据。
= AVERAGE(VLOOKUP(LARGE(IF(B3:B24 = F13,A3:A24),1),A3:D24,4),VLOOKUP(LARGE(IF(B3:B24 = F13,A3:A24), 2),A3:D24,4),VLOOKUP(LARGE(IF(B3:B24 = F13,A3:A24),3),A3:D24,4))