Excel 2010中的条件AGGREGATE / Median

我目前正试图从一系列具有两个条件的数据中提取中位数。 基本上相当于下面的AVERAGEIFS(),我工作得很好。

AVERAGEIFS():

=AVERAGEIFS(Analysis!$F:$F,Analysis!$F:$F,">=0",Analysis!$C:$C,Dashboard!C6,Analysis!$W:$W,Dashboard!B8) 

我不能想出一个方法来结合MEDIAN和IF(和(想出一个类似的公式,但认为AGGREGATE可能是有用的!

任何帮助或理智检查表示赞赏!

您正在使用MEDIAN创build一个数组公式。 所以在使用数组公式时有一些规则:

  1. 数组types公式中不要使用完整的列引用。 限制对数据集的引用。 我们可以使用$F$1:INDEX(F:F,MATCH(1E+99,F:F))此操作,这将把列F中的引用设置为F1,最后一行中包含一个数字。

  2. AND()在数组公式中无效,嵌套IF()或在布尔testing之间使用*

  3. 在退出编辑模式时,需要使用Ctrl + Shift + Enter确认公式,而不是Enter。 如果正确完成,则Excel将在公式周围放置{}

所以公式会是这样的:

 =MEDIAN(IF((Analysis!$F$1:INDEX(Analysis!$F:$F,MATCH(1E+99,Analysis!$F:$F))>=0)*(Analysis!$C$1:INDEX(Analysis!$C:$C,MATCH(1E+99,Analysis!$F:$F))=Dashboard!C6)*(Analysis!$W$1:INDEX(Analysis!$W:$W,MATCH(1E+99,Analysis!$F:$F))=Dashboard!B8),Analysis!$F$1:INDEX(Analysis!$F:$F,MATCH(1E+99,Analysis!$F:$F)))) 

确实,您不能直接使用AGGREGATE函数来执行条件中位数,但是您可以轻松使用函数编号16PERCENTILE.INC )或函数编号17QUARTILE.INC ),其中k值分别为0.52

这些函数允许数组在AGGREGATE ……中,并具有自动忽略错误的额外优点,所以你可以使用这个公式作为条件的中值

=AGGREGATE(17,6,Analysis!$F:$F/(Analysis!$C:$C=Dashboard!C6)/(Analysis!$W:$W=Dashboard!B8),2)