楼主 w83365040371 |
Prob是一个求区域中的数值落在指定区间内的概率的函数. 可以将这个函数的功能扩展,用来求区域中的数值在指定区间内的个数. 那么,Prob函数就跟函数Frequency、Countif、Countifs函数具有相似的功能. 而且相比Frequency函数,Prob函数可以直接进行累计求和;相比Countif、Countifs函数,Prob的引用区域可以是经过处理的数组,而不仅仅是单元格区域.... 下面的链接,是利用Prob函数进行条件求和的帖子,这次我们将介绍Prob函数的区域数组用法.... 问题1:统计分数段中的人员个数,如下图所示 图1. 图2. 注释:60的意思是,大于0小于等于60;80的意思是大于60小于等于80 A: 我们一般解决此类问题用的是frequency函数,
公式1.
在解决问题1.时,我们看到prob函数没有比frequecy函数简便,反而有点复杂,那么我们限制条件,要求累计统计区间人员个数 如下图所示,要累计统计人员个数 备注:60的意思是,大于0小于等于60;80的意思是,大于0小于等于80 图4. 依题目要求,使用区域数组的公式为,结果见图5. 公式2.
Frequency函数只有跟mmult函数结合,才能进行累计统计,当然在这里还有个比Prob函数跟简单的countif函数....,那么让我们来看问题2 图5. 问题2.统计各小组中区间分数个数,如下图所示图6. 图6. 注释:60的意思是,大于0小于等于60;80的意思是大于60小于等于80 A: 用区域数组的方法,不能简单的使用Frequency函数返回我们想要的结果,在这里,我们用了Prob函数,见公式3. 公式3.
在这里,我们将两个小组数字化,即{"天罡","地煞"}转换为{1,2},对原始数据进行加工 MATCH(B4:B52,G12:H12,)/1%%+D4:D52 那么只有对图6中的区间段转换,即+{1,2}*10^4,才是用Prob函数真正使用的区间段.... 我们可以看到,Prob函数处理这个问题有点麻烦,有个更方便的函数Countifs可以使用,但是Countifs只返回小组内的累计统计,不能返回小组间的累计统计,让我们看下这个问题的扩展... 如图7.的右半图所示,地煞小组中的<=60的分数段是要累计上天罡小组中的总人数 对于这个问题,Prob函数就发挥出其简便的作用,具体公式见公式4. 公式4.
公式3.和公式4的结果见图7. 图7. 由公式4.我们可以引出一个具体的稍微复杂的问题:问题3 问题3.在两组中随机挑选出一名分数大于90的人员 图8. 首先,我们要对原始数据进行处理,对每个分数>90的数据加上一个随机数,具体的操作过程见链接 http://www.exceltip.net/thread-29699-1-1.html ,公式见公式5. 公式5.
备注:在图9.中绿色背景的为符合条件的已经加了随机数字的单元格数值 现在我们已经生成了含有随机数字的数组,要在符合条件的数据中用small函数每组挑选一个,那么,接下来的问题就是,small函数的第二参数是怎么确定? 由于每个小组中符合条件的数据被挑中的概率都是一样的,即小组中的第一个和最后一个的概率也是一样的,那么就要用公式统计出每个小组符合条件的人员的个数,即小组中的最后一名,并累计相加.... 根据这一要求,我们用Prob函数对符合条件的小组成员个数,进行累计统计,见公式6. 公式6.
得到的结果是{18,25},即小组天罡中满足条件的最后一位人员在公式5.中返回的数组中的排名是18,而地煞的排名是25 最后我们将这两个函数嵌套起来,就能够得到我们想要的结果 公式7.
总结: Prob函数相比其他函数,在累计统计和非单元格引用方面占有优势.... 延伸问题:图8.中的数据在生成的时候以考号自动排序? Prob.rar |
2楼 天南地北 |
醋醋提出的问题解决了吗? |
3楼 w83365040371 |
哦,半瓶提出的问题是prob(x_range,prob_range,,)中的prob_range中出现负数,函数结果会返回错误, 但是在实际应用中,Prob_range 很少会碰到出现负数的问题 而且这次,是统计符合条件的单元格个数,应用prob函数是没有问题的 |