Excel 中的分箱
我们可以使用 MS Excel 中的哪些公式进行
等深度分箱
等宽分箱
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
我们可以使用 MS Excel 中的哪些公式进行
等深度分箱
等宽分箱
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(4)
这是我用过的。我分箱的数据位于
A2:A2001
中。等宽度:
我使用以下公式计算了单独单元格 (
U2
) 中的宽度:=(MAX($A$2:$A$2001) - MIN($A$2:$A$2001) + 0.00000001)/10
10
是 bin 的数量。+ 0.00000000001
之所以存在,是因为如果没有它,等于最大值的值就会被放入自己的容器中。然后,对于实际的分箱,我使用了这个:
=ROUNDDOWN(($A2-MIN($A$2:$A$2001))/$U$2, 0)
这个函数正在查找有多少个分箱- 宽度高于您的值的最小值,方法是将(值 - 最小值)除以 bin 宽度。我们只关心有多少个完整的 bin 宽度适合该值,而不是小数,因此我们使用 ROUNDDOWN 来截断所有小数 bin 宽度(即显示
0
代码 > 小数位)。等深度
这个比较简单。
=ROUNDDOWN(PERCENTRANK($A$2:$A$2001, $A2)*10, 0)
首先,获取当前单元格 (
$A2
) 的百分位数排名所有被分箱的单元格的数量 ($A$2:$A$2001
)。这将是一个介于 0 和 1 之间的值,因此要将其转换为 bin,只需乘以所需的 bin 总数(我使用10
)。然后,按照以前的方法去掉小数。对于其中任何一个,如果您希望 bin 从 1 而不是 0 开始,只需在公式末尾添加 +1 即可。
Here's what I used. The data I was binning was in
A2:A2001
.Equi-width:
I calculated the width in a separate cell (
U2
), using this formula:=(MAX($A$2:$A$2001) - MIN($A$2:$A$2001) + 0.00000001)/10
10
is the number of bins. The+ 0.00000000001
is there because without it, values equal to the maximum were getting put into their own bin.Then, for the actual binning, I used this:
=ROUNDDOWN(($A2-MIN($A$2:$A$2001))/$U$2, 0)
This function is finding how many bin-widths above the minimum your value is, by dividing (value - minimum) by the bin width. We only care about how many full bin-widths fit into the value, not fractional ones, so we use
ROUNDDOWN
to chop off all the fractional bin-widths (that is, show0
decimal places).Equi-depth
This one is simpler.
=ROUNDDOWN(PERCENTRANK($A$2:$A$2001, $A2)*10, 0)
First, get the percentile rank of the current cell (
$A2
) out of all the cells being binned ($A$2:$A$2001
). This will be a value between 0 and 1, so to convert it into bins, just multiply by the total number of bins you want (I used10
). Then, chop off the decimals the same way as before.For either of these, if you want your bins to start at 1 rather than 0, just add a
+1
to the end of the formula.将此公式放入 B1 中:
在 B 列中填写整个公式,然后就完成了。该公式将范围分为 4 个相等的桶,并返回单元格 A1 所属的桶编号。第一个存储桶包含最低 25% 的值。
一般模式是:
Put this formula in B1:
Fill down the formula all across B column and you are done. The formula divides the range into 4 equal buckets and it returns the bucket number which the cell A1 falls into. The first bucket contains the lowest 25% of values.
General pattern is:
最好的方法是使用内置方法:
http://support.microsoft.com/kb/214269< /a>
我认为该插件的 VBA 版本(大多数版本的步骤 3)也会为您提供代码。
Best approach is to use the built-in method:
http://support.microsoft.com/kb/214269
I think the VBA version of the addin (step 3 with most versions) will also give you the code.
您可能必须构建矩阵才能绘制图表。
对于 bin 支架,您可以使用
=PERCENTILE()
表示等深度,使用差值比例=Max(Data) - Min(Data)
表示等宽度。您可以使用
=COUNTIF()
获取频率。 bin 的平均值可以使用=SUMPRODUCT((Data>LOWER_BRACKET)*(Data 获得。
更复杂的统计数据可以通过 SUMPRODUCT 和/或数组公式(其中我不推荐,因为对于非程序员来说很难理解)
You may have to build the matrix to graph.
For the bin bracket you could use
=PERCENTILE()
for equi-depth and a proportion of the difference=Max(Data) - Min(Data)
for equi-width.You could obtain the frequency with
=COUNTIF()
. The bin's Mean could be obtained using=SUMPRODUCT((Data>LOWER_BRACKET)*(Data<UPPER_BRACKET)*Data)/frequency
More complex statistics could be reached hacking around with SUMPRODUCT and/or Array formulas (which I do not recommend since are very hard to comprehend for a non-programmer)