在Excel 2010中计算百分位数

时间:2013-03-27 23:19:29

标签: excel excel-2010

这是我的下面的清单。我试图计算95%的呼叫在多少毫秒内回来。

Milliseconds   Number of Calls
    45         14
    46         33
    47         40
    48         41
    49         83
    50         114
    51         124
    52         82
    53         89
    54         99
    55         82
    56         72
    57         80
    58         101
    59         73
    60         74
    61         81
    62         64
    63         70
    64         61

以上数据意味着什么 -

14 calls came back in 45 milliseconds
33 calls came back in 46 milliseconds
40 calls came back in 47 milliseconds
etc etc

现在我应该从上面的数据中找出95% percentile。意思是95%的时间,呼叫在这几毫秒内回来了。

有谁能告诉我如何在Excel工作表中执行此操作?谢谢你的帮助

我正在使用Excel 2010.我已经复制了Excel表格中的两列,以便计算百分比。

更新: -

使用下面的列表,我得到95 percentil e为66.这意味着95%的时间,呼叫在66 milliseconds中回来,这是不对的。它看起来像我95%的时间,电话回来~4ms。

Milliseconds    Number of calls
    0           11
    1           259
    2           504
    3           293
    4           38
    5           15
    6           1
    7           4
    8           1
    9           1
    10          1
    11          2
    23          1
    30          1
    39          1
    147         1

我正在使用这个公式 -

=PERCENTILE(IF(TRANSPOSE(ROW(INDIRECT("1:"&MAX(B$2:B$21))))<=B$2:B$21,A$2:A$21),0.95)

3 个答案:

答案 0 :(得分:3)

额外的列会简化计算,但如果你想要......你可以计算......

假设A2:A21中的毫秒数和B2:B21中的调用次数,您可以使用此数组公式

=PERCENTILE(IF(TRANSPOSE(ROW(INDIRECT("1:"&MAX(B$2:B$21))))<=B$2:B$21,A$2:A$21),0.95)

使用 CTRL + SHIFT + ENTER确认

或此非阵列版

=LOOKUP(SUM(B$2:B$21)*0.95,SUBTOTAL(9,OFFSET(B$1,0,0,ROW(B$2:B$21)-ROW(B$2)+1)),A$2:A$21)

我得到63的结果 - 变为0.75(第75百分位数)而你得到59

答案 1 :(得分:1)

设置一个新列,即“时间或低于时间的呼叫数”,并计算当前行的呼叫数和所有较高行(较低时间)的呼叫数之和。然后,在名为“Percentile”的旁边设置一个列,并通过将“呼叫次数或时间次数”除以接收的呼叫总数来计算该列。无论显示高于95%的百分位数的第一行是包含第95百分位数的那一行。

答案 2 :(得分:0)

获取时间的标准偏差(以毫秒为单位)字段,并使用(95%~2 x std)计算低于~2标准偏差的调用次数?