首页 > 解决方案 > 如何使用单个公式计算条件中位数数组的平均值?

问题描述

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

数据集包含每篇文章的多个条目,如下所示:

在此处输入图像描述

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

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

在此处输入图像描述

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

在此处输入图像描述

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

提前致谢。

标签: exceldynamic-arrays

解决方案


我在想也许帮助栏更容易。但是,可以在我的雇主提供的 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)

因此,基本上匹配为您提供了每个组开始的行号数组,而地板/天花板函数为您提供了从那里到该组中已排序数字的中点的偏移量。

有关中值函数的“无案例”形式的描述,请参见此内容。

假设数据是按组字母预排序的,而不是按每个组内的数字排序的。

在此处输入图像描述

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


推荐阅读