下一个单元格等于值的平均前n个值

具有以下数据,我想计算列B中的前n个值或前n%值的平均值,其中列A = C1中的值。

我尝试了许多不同的公式,但我无法得到它的工作。

{=AVERAGEIFS(B1:B14,A1:A14,C1,B1:B14,(IF(B1:B14>PERCENTILE(B1:B14,0.7),B1:B14)))} {=AVERAGE(IF(A1:A14=C1,IF(B1:B14>PERCENTILE(B1:B14,0.7),B1:B14)))} 

  ABC 1 a 1 a 2 a 1 cs 3 cs 1 ffs 4 a 1 . 5 a 1 . 6 ffs 1 . 7 a 1 . 8 a 1 . 9 as 1 . 10 a 1 . 11 sfaq 1 . 12 a 1 . 13 aasf 1 . 14 a 1 . 15 a 1 . 16 a 1 . 17 qw 1 . . . . . . . . . . . . . 

工作表的图像

我认为你的AVERAGE版本是正确的,但是当你计算PERCENTILE你还需要包含在这个计算中的column A条件,例如这个数组公式

=AVERAGE(IF(A1:A14=C1,IF(B1:B14>PERCENTILE(IF(A1:A14=C1,B1:B14),0.7),B1:B14)))

CTRL + SHIFT + ENTER确认

如果使用AGGREGATE函数计算PERCENTILE ,则可以使用AVERAGEIFS获得与常规(非数组)公式相同的结果,即像这样

=AVERAGEIFS(B1:B14,A1:A14,C1,B1:B14,">"&AGGREGATE(16,6,B1:B14/(A1:A14=C1),0.7))

我期望这两个公式给出相同的结果