这个excel公式怎么错了

来源:百度知道 编辑:UC知道 时间:2024/06/03 10:36:57
=IF(ROUNDDOWN(RAND()*100,0)<50,ROUNDDOWN(RAND()*100,0)+45,ROUNDDOWN(RAND()*100,0)) 我用这个公式想输入一门功课的成绩(百分制),为什么结果会有大于100的数 高手请来帮忙啊

在这个公式中使用了3次RAND()*100,这3次实际是都是各自独立的,相互之间并不相干。所以这个判断没有意义。
这个公式的含义是。如果随机数小于50,再生成一个45-145之间的随机数,否则再产生一个0~100的随机数。
要产生50~100的随机数应该是这样
=ROUNDDOWN(RAND()*50+50,0)

学习了,经过演算,我认为还是 LWSHH 的=RANDBETWEEN(45,100),如果公式返回的是#NAME,工具,加载宏,钩选分析工具库比较好,因为 RANDBETWEEN 函数本身就是返回位于指定二个数之间的随机数的函数,直接使用简单明了。

但是更好的竟然是:=INT(RAND()*50)+50!!!真是山外青山楼外楼,英雄好汉争上游啊!!!

公式中的3个RAND()返回的随机数是相同的机会非常小,因此这样判断没有意思,公式的意思是要返回45-100之间的随机数,可用下面公式
=RANDBETWEEN(45,100),如果公式返回的是#NAME,工具,加载宏,钩选分析工具库。

ROUNDDOWN(RAND()*100,0)<50,ROUNDDOWN(RAND()*100,0)+45

第一次随机的到了一个值,判断他小于50。
后面又随机得到了一个值,把他加上了45

两次得到的随机值是不一样的。当然有是有大于100的值了

=INT(RAND()*50)+50