我有一个电子表格,其中包含不同的产品,列出的单位和零售价值,如下例所示
Product Units Value
A 10 100
B 15 80
C 30 560
我想将平均销售价格与中位销售价格进行比较,因此我正在寻找一个快速公式来准确计算中位数。
中位数函数需要整个系列,因此对于上面的产品A,我需要10个10个实例等。考虑到我的数据的浓缩形式,我如何快速计算中位数?
答案 0 :(得分:0)
如果不编写自己的VBA函数,可以采取几种方法。
第一个从压缩频率计数格式扩展数据,以生成完整的观察集。这可以手动或公式化完成。假设后者是必需的,可以使用几列来实现。
所有蓝色细胞都是公式。
列E
只是列B
的累积,而F
是此列的调整版本。列H
只是值1到55,即单元格L2
给出的观察总数。列I
使用MATCH()
,其最终参数为1,以匹配H
中的每个观察值与F
中的调整累积值。列J
使用INDEX()
函数生成观察值。 (观察1-10具有值100,11-25具有值80,并且26-55在该示例中具有值560)。 MEDIAN()
函数用于单元格M2
,其中J
列为其参数。
通过使用OFFSET
函数来控制MATCH()
,INDEX()
和{的范围参数,可以改进此方法以考虑不同数量的产品和数据点{1}}功能。当然,列MEDIAN
和I
中的相邻单元格可以使用单个公式进行组合 - 为了便于说明,我已单独显示它们。
第二种方法涉及按值对数据进行排序(因此,在这种情况下,数据行将成为第2行中的产品B,第3行中的产品A和第4行中的产品C)。然后是识别中间观测数(如果观测数是奇数)或中间观测数对(如果观测数是偶数)然后确定对应于这个/这些中间的值的情况。观测(一个或多个)。在此方法中,仍然使用列J
中的已调整累积值,而不是显式计算列F
和I
中的值,因为现在每次观察都可以将其限制为中间观察值( S)。
答案 1 :(得分:0)