=A1+(RAND()001+007)(-1)^INT(RAND()10)
在b1
生成a1
差值在007和008之间的随机数
你可以随意调整001
和007
只要他们相加等于008即可
vba的话把rand换成rnd
你的代码不会大于008的,你看看是不是别的地方代码有问题吧
要求中有两个问题,
1个函数产生一个结果,第2次用函数产生另一结果,但不能保证多组结果的合格率不相同。除非一次性返回多个组结果。
1个函数返回的结果一定是在你输入的单元格或者连续区域,不能由你选择。
例如你在A1输入函数,要在C3返回结果,那是不可能的。
其实不用VBA也能实现。步骤如下:
在A列[A1:A100]的单元格内顺序输入1-100,然后在B列对应单元格内输入=rand(),生成100个随机数;
对B列进行排序,升序降序都行(注意:要选扩展选定区域,执行排序)。
执行完排序后,100个数字就被随机打乱了
第1-50行可以分为1组(其中前70%,也即前35个编号可以分配治疗方案A,其余15个编号是方案B);
第51-100行可以分为2组(其中前40%,也即前20个编号可以分配治疗方案A,其余30个编号是方案B)
1、VBA方法
如下宏可在光标位置生成随机数1-10之间的随机数。
Sub Rand()SelectionTypeText 1 +Int(Rnd() 9)
SelectionTypeParagraph
End Sub
2、Excel中生成复制
采用excel中生成后复制粘贴word的方法。
excel生成随机数的函数基本上有两个:
rand()a+b,生成范围为b-a到b+a。
randbetween(a,b),要求a,b为整数,可生成范围为a到b之间的整数。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)