因为随机数函数是一个易失性函数,所以正如题主所说,生成的随机数会在每次打开文件时重新生成。其实,不只是打开文件时,而是工作表中有任何操作,如输入数据后按回车键确定、筛选、排序按F9重新计算等,随机数都会重新生成。
要使随机函数生成的随机数不再发生变化,必须在公式中设置单元格在一定的条件下等于单元格本身,这就必须打开Excel的迭代计算(即Excel的循环引用)。所以要达到题主的目的,需要按如下步骤来做:
在选项的公式选项卡中,把“启用迭代计算”打上对勾后确定,以启用迭代。
假设需要生成的随机数在1~10之间,在B2中输入公式:
=IF($A1=""," ",IF(COLUMN()-1>$A1,"",IF(B2=" ",RANDBETWEEN(1,10),B2)))
右拉到若干个单元格(单元格个数大于或等于A1中可能输入的最大数字)
现在因为A1中没有输入内容,第1个IF为真,输入公式的单元格显示为空(注意空是一个空格——英文双引号中输入了一空格)
当在A1中输入数字时,第1个IF条件为假,则执行第2个IF,假设输入的数字是5,在B2~F2(不是题主所说的E2)中,第2个IF为假,执行第3个IF。显然第3个IF为真空,因为原来已赋值一个空格,于是生成一个1~10的随机数字;而在G2以后的单元格中,因为前面的数字个数已与A1相同,列数字-1后大于A1,所第3个IF条件为真,取空值(双引号中没内容——单元格显示为没空格的空)。
再来分析B2单元格,当工作表中有操作时,易失性函数会发生变化,但公式中第3个IF的条件为假——B2单元格已有数字,不是一个空格,所取第3参数,即取B2值——也就是已取得的随机数——不再变化。这个B2是引用单元格本身——这就是Excel中的循环引用——所以输入公式前要进行步骤1的设置——启用迭代计算。C2~F2所有已取得的数字的单元格同样不再发生变化。
要重新生成随机数时,只要删除A1中的内容,使第2行填充了公式的单元格重新初始化——取得一个空格,再在A1中输入新的数字即可。
1、打开Excel,假设要生成指定范围最小值A至指定范围最大值B之间的随机数,利用的公式原理是:RAND()*(B-A)+A。
2、以“A=2,B=10”为例随机生成2至10之间的随机数,选中单元格,键入“RAND()*(10-2)+2”。
3、之后按回车键即可。RAND函数每次生成的都是随机数,通过上述方法即可生成指定范围的随机数。
用RAND()函数可实现0到1之间的随机小数,如果要生成随机整数的话就需要用RANDBETWEEN()函数,格式为:RANDBETWEEN(1,100):生成1到100的随机整数。如果还要知道其它的,你可以查下这二个函数的具体用法,希望你帮到你。
1、Excel中可以利用randbetween函数生成指定范围内的随机整数,如下图所示,在B1:B4中生成1到100内的随机数字,选择区域,输入公式。
2、按下Ctrl+Enter结束输入,得到随机数字。
3、按下F9,随机数字会刷新。
4、如果要生成随机小数,可以考虑在Randbetween后面除以10的倍数。
5、得到结果,F9可以刷新数字。
望采纳,谢谢!
RAND()会产生0~1之间的随机小数。小数位数有15位之多。
RANDBETWEEN(上值,下值)会产生有上值和下值之间的随机整数。
按F9键可以刷心。