背景
我想基于列值在Excel中创建箱/组,例如:如果列“A”包含从第二行到501行的值,并且每行包含同一列中的不同值(以浮点十进制) (列A),然后我想在列“B”中定义一个值范围作为group1到group5(我们可以将它们标记为1,2,3,4和5),这样每个组都有100个列的行值“B”为1,2,3,4或5。
我的尝试:
我想要的是两种方式,首先我按照“A”列的升序对数据进行排序,然后使用下面的公式来制表组/箱。它工作得很好,但是当有大量数据时会挂起。
=INT((ROWS($A$1:A1) - 1) * 5 / ROWS($A$1:$A$501))+1
我的问题:
我需要的是有效地计算这些bin值可以使用像百分位数这样的公式,我也尝试了但是它给了我一个值的范围(这是显而易见的)。 如果在“A”中存在的值存在联系,则行计数公式(如上所述)似乎也不起作用,如果存在于区间(组)的边界处,则相同的值可以在两个不同的组上。
我希望我的问题很清楚,在此先感谢,并且非常感谢任何帮助。
答案 0 :(得分:1)
首先要计算您可能想要尝试一些经验法则的分档数量,例如√n
或更强大的方法,例如Freedman-Diaconis rule(Max -Min)/h where h=2∗IQR∗n−1/3.
但是查看您想要放置bin值的问题个人数量最好的一些技术。这是一种方法
从数据集中计算Min, 1st Quartile, 2nd Quartile, 3rd Quartile and 4th quartile
然后为它们分配bin值,如Min = 1,1st Quartile = 2 ...... 4th quadile = 5
所以我在B列中有这样的主要数据(随机生成的数字)
VALUES
0.406199302
0.211390353
0.680235687
0.351327448
0.327081614
0.919550151
0.103904963
0.575393934
0.867757642
0.879022189
0.663474053
0.423916716
0.433612145
0.409092672
从D列到F我已经计算了这些字段
MIN 0.0040863823 1
QUARTILE1 0.2362226262 2
QUARTILE2 0.4800558265 3
QUARTILE3 0.7491378854 4
QUARTILE4 0.9972357897 5
在我正在计算bin的C栏中,我可以使用此公式=IF(AND(B2>=$E$1,B2<$E$2),1,IF(AND(B2>=$E$2,B2<$E$3),2,IF(AND(B2>=$E$3,B2<$E$4),3,IF(AND(B2>=$E$4,B2<$E$5),4,5))))
哪会导致
VALUES BIN
0.406199302 2
0.211390353 1
0.680235687 3
0.351327448 2
0.327081614 2
0.919550151 4
0.103904963 1