我拥有特定 CPU 的数量及其 CPU 分数的数据。基于此,我希望动态计算中位数和四分位数统计数据。
例如,我有一张看起来像的表
姓名 计数 分数 i7-5820k 3,3 GHz 6 核 11 12,996 i7-950 3.1 GHz 4 核 4 5595 i7-3820 3,6 GHz 4 核 7 8998 i5-3570k 3.4 GHz 4 核 1 7153
我希望对数据进行的操作是,计算第一行的标记 11 次,第二行的标记 4 次,依此类推。
该功能目前已在 Google 电子表格中使用,但我猜想大多数电子表格应用程序都应该提供类似的功能。
答案1
除了数学之外,您还可以使用以下方法数组公式:
=MEDIAN(IF(COLUMN(A:Z)<=B2:B5,C2:C5))
CtrlShiftEnter
笔记:
IF(COLUMN(A:Z)<=B2:B5,C2:C5)
生成一个二维数组,4 rows, 26 columns
其中每一行重复 C 列中的单元格,次数与 B 列单元格中指定的次数相同;行中其余条目为FALSE
。该
MEDIAN
函数忽略FALSE
单元格并评估生成的二维数组中的实际条目。
答案2
Excel 有一个 QUARTILE() 函数可供使用。但您的数据集足够小,几乎可以通过检查获得答案。
首先,将包含 i7-950 CPU 的行移到列表底部。总共有 23 个 CPU,因此中位数是排名第 11.5 位的 CPU 的分数。同样,第一四分位数是排名第 5.75 位的 CPU 的分数。
就您而言,这两个答案都是 8998。这有点奇怪,但这与您的数据分布有关。第一四分位数和第二四分位数都属于同一个“箱”。想象一下,如果美国每个人的体重都是 150 磅。那么中位数体重和所有百分位数都是 150 磅。
你可以争辩说你的四分位数和中位数都下降了之间数据点,然后在数据点之间进行插值。然后,您可以计算出四分位数为 5595 和 8998 之间的 3/4。中位数为 8998 和 12,996 之间的一半。
我得到 8197.25 和 10,997。
要了解 QUARTILE() 函数的想法,请创建一个包含 11 个 12,996、7 个 8998、1 个 7153 和 4 个 5595 的列。
然后使用 QUARTILE(range,1) 和 QUARTILE(range,2) 计算第一四分位数和中位数。这里的“range”是 23 个分数的列表。
编辑:插值在这里并不完全合法,因为 CPU 分数都是精确的,而不是分数范围的平均值。我思考。我假设您查阅了每个 CPU 的基准测试分数的已发布值。
我不确定如果实际在每个 CPU 上运行基准测试会发生什么。相同类型的 CPU 是否都会产生相同的分数,还是会有一系列的分数?如果相同 CPU 的分数存在一些差异(可能是由于温度或 ??),那么我认为插值是合理的。
欢迎在此发表评论。