首页 > 解决方案 > Excel:如何将多个条件添加到中位数和第一四分位数的数组计算中

问题描述

我有一个关于我现在正在处理的大型 excel 文件的问题。

我在较大的数据列表中有一长列值(B 列)。在 CI 列中,与数据列表中的另一个值有连接,根据不同的条件,该值可以是 TRUE 或 FALSE。

在此处输入图像描述

我已经设法使用以下公式创建了两个数组函数,用于计算 B 列中值的中位数和第一个四分位数,其中 C 列中的值为 TRUE。只要相应行的 C 列中的值等于 TRUE,它们就会计算 B 列中值的中位数和第一个四分位数。

{=MEDIAN(IF($C$2:$C$11; $B$2:$B$11))}

{=QUARTILE(IF($C$2:$C$11; $B$2:$B$11);1)}

现在我想在计算中添加另一个条件。除了 C 列中的值等于 TRUE 之外,如果 A 列中的值等于“测量 1”或任何其他动态值,我还只想计算中位数和第一个四分位数。我试图在下面嵌套 AND 函数,但它根本不起作用。

{=MEDIAN(IF(AND($B$2:$B$11;$A$2:$A$11="Measure 1"); $C$2:$C$11))}

谁能帮助我解决如何根据多个标准向数组添加值,然后计算该数组的中位数和四分位数?

标签: arraysexcelcriteriamedianquartile

解决方案


您构造一个包含适用值的数组,然后将该函数应用于该数组。

由于这些是数组公式,因此您必须在按住ctrl+的shift同时点击来输入/确认这些公式enter。如果您正确执行此操作,Excel 将{...}在公式周围放置大括号,如公式栏中所示

所以,对于Median

=MEDIAN((IF((Condition_1=TRUE)*(Measure="Measure 1")*Value,(Condition_1=TRUE)*(Measure="Measure 1")*Value)))

对于四分位数 1

=QUARTILE((IF((Condition_1=TRUE)*(Measure="Measure 1")*Value,(Condition_1=TRUE)*(Measure="Measure 1")*Value)),1)

Quartile也是AGGREGATE可以在数组上工作的参数之一,因此您通常可以输入:

=AGGREGATE(17,6,1/((Condition_1=TRUE)*(Measure = "Measure 1"))*Value,1)

并且,QUARTILE.INCquart 参数 = 2,这与MEDIAN

所以对于中位数,您可以使用:

=AGGREGATE(17,6,1/((Condition_1=TRUE)*(Measure = "Measure 1"))*Value,2)

推荐阅读