在Excel中创建分类/组

时间:2013-12-18 06:12:10

标签: excel

背景

我想基于列值在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”中存在的值存在联系,则行计数公式(如上所述)似乎也不起作用,如果存在于区间(组)的边界处,则相同的值可以在两个不同的组上。

我希望我的问题很清楚,在此先感谢,并且非常感谢任何帮助。

1 个答案:

答案 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