如何使用单个公式计算一组条件中位数的平均值?

How do I calculate the average from an array of conditional medians using a single formula?

我需要在一个公式中执行两步计算。

数据集包含每篇文章的多个条目,看起来像这样:

截至目前,我使用“助手”列首先获取条件中位数数组,然后计算平均值。

第 1 步:计算每种产品的中位数价格变化百分比。

第 2 步:根据这些中位数计算平均值(每篇文章计算一次)。

我想将这两个步骤合并到一个公式中(即通过使用动态数组函数)。

提前致谢。

我在想也许帮助列更容易。但是,可以在我的雇主提供的 O365 中完成:

=AVERAGE((INDEX(SORTBY(B:B,A:A,1,B:B,1),MATCH(UNIQUE(FILTER(A:A,A:A<>"")),A:A,0)+FLOOR((COUNTIF(A:A,UNIQUE(FILTER(A:A,A:A<>"")))-1)/2,1))+
INDEX(SORTBY(B:B,A:A,1,B:B,1),MATCH(UNIQUE(FILTER(A:A,A:A<>"")),A:A,0)+CEILING((COUNTIF(A:A,UNIQUE(FILTER(A:A,A:A<>"")))-1)/2,1)))/2)

所以基本上匹配为您提供了每个组开始的行号数组,并且 floor/ceiling 函数为您提供了从那里到该组内已排序数字的 mid-point 的偏移量.

有关中值函数 'case-free' 形式的说明,请参见 this

假设数据是 pre-sorted 在组字母上,而不是在每个组内的数字上。

因此,Index 现在为您提供了一个没有破解的数组 - 在尝试此操作之前我不知道这一点。