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一个数组公式。 所以在使用数组公式时有一些规则:
-
数组types公式中不要使用完整的列引用。 限制对数据集的引用。 我们可以使用
$F$1:INDEX(F:F,MATCH(1E+99,F:F))
此操作,这将把列F中的引用设置为F1,最后一行中包含一个数字。 -
AND()在数组公式中无效,嵌套IF()或在布尔testing之间使用
*
-
在退出编辑模式时,需要使用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
函数来执行条件中位数,但是您可以轻松使用函数编号16
( PERCENTILE.INC
)或函数编号17
( QUARTILE.INC
),其中k
值分别为0.5
和2
。
这些函数允许数组在AGGREGATE
……中,并具有自动忽略错误的额外优点,所以你可以使用这个公式作为条件的中值
=AGGREGATE(17,6,Analysis!$F:$F/(Analysis!$C:$C=Dashboard!C6)/(Analysis!$W:$W=Dashboard!B8),2)