条件数组计算百分位数

5
我有一些如下数据:
    val   crit  perc
0.415605498 1   perc1
0.475426007 1   perc1
0.418621318 1   perc1
0.51608229  1   perc1
0.452307882 1   perc1
0.496691416 1   perc1
0.402689126 1   perc1
0.494381345 1   perc1
0.532406777 1   perc1
0.839352016 2   perc2
0.618221702 2   perc2
0.83947033  2   perc2
0.621734007 2   perc2
0.548656662 2   perc2
0.711919796 2   perc2
0.758178085 2   perc2
0.820954467 2   perc2
0.478645786 2   perc2
0.848323655 2   perc2
0.844986383 2   perc2
0.418155292 2   perc2
1.182637063 3   perc3
1.248876472 3   perc3
1.218368809 3   perc3
0.664934398 3   perc3
0.951692853 3   perc3
0.848111264 3   perc3
0.58887439  3   perc3
0.931530464 3   perc3
0.676314176 3   perc3
1.270797783 3   perc3

我正在尝试使用percentile.inc()函数来计算每个crit级别的第5百分位数(因为我已将变量var分类为类别)。 我尝试使用{=PERCENTILE.INC(IF($B$2:$B$32=1,$A$2:$A$32,IF($B$2:$B$32=2,$A$2:$A$32,IF($B$2:$B$32=3,$A$2:$A$32,""))),0.05)},但它只计算整个数组的百分位数,而不会给我条件百分位数。任何帮助将不胜感激(并且提醒一下,我需要在26000行的20个crit级别上进行此操作)!

你正在尝试从一个公式中得到三个答案。我建议你需要在三个单元格中使用相同的(修改后的)公式来分离三个关键值的结果。我一直在为你尝试修改过的公式,我们会成功的。顺便说一下,你最后的参数0.05 = 第5百分位数,而不是第0.05百分位数。 - KiwiSteve
谢谢,已经有人解决了! - Chris. Z
1个回答

10

这对我有用。我的布局如下:

输入图像描述

我在G3中使用了以下公式:

=PERCENTILE.INC(IF(B:B=F3,A:A),0.05)

这是一个数组公式,所以请使用Ctrl+Shift+Enter输入。根据需要下拉。


看起来它能工作,但我应该指定希望以我的表格形式给出结果...每行都有关联值。有什么聪明的方法可以做到这一点吗? - Chris. Z
那么在你的perc列中,你想要有百分位数? - MGP
没错! 可能只是个小细节,但这会帮助我完成接下来要做的事情(顺便说一句,你的公式在整个数据集上完美地工作了)。 - Chris. Z
1
你可以在C2中使用这个公式(假设你有标题),然后向下拖动:=PERCENTILE.INC(IF(B:B=B2,A:A),0.05) - MGP
如果您有大量数据,公式可能会有点慢。为了提高速度,可以避免使用完整列引用“A:A”和“B:B”,并将其替换为实际行数,例如:将“A:A”替换为“A$2:A$26000”,将“B:B”替换为“B$2:B$26000”。 - MGP
1
是的,使用A:A和B:B解决方案处理起来非常疯狂...使用实际数组要顺畅得多。非常感谢! - Chris. Z

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接