作业帮 > 综合 > 作业

Excel如果想A1:A10=B1:B10里随机一个数,且A1:A10相邻两个数不能相同怎么设函数?

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/04/29 17:32:37
Excel如果想A1:A10=B1:B10里随机一个数,且A1:A10相邻两个数不能相同怎么设函数?
注:B1~B10里的数据是各不相同
操作:说明:
C1=INT(RAND()*10)+1 C1在1到10之间取一个随机数
C2=INT(RAND()*9)+1 C2在1到9之间取一个随机数
C2下拉到C10
D1=C1 D1是1到10之间的一个数
D2=IF(C2=D1,C2+1,C2) C2是1到9之间的一个数,C2+1就是2到10之间的一个数,
D2则是与D1不相同的1到10之间的一个数
D2下拉到D10 Dn则是与Dn-1不相同的1到10之间的一个数(10>=n>2)
A1=INDEX($B$1:$B$10,D1) A列是B列中以D列为序号的数
A1下拉到A10
总说明:
因B1~B10里的数据是各不相同,只要D1~D10里相邻两个数不相同,就能保证A1~A10相邻两个数不相同.
以下,对上面的算法再作一些改进,这样省去了辅助列D:
C1=INT(RAND()*10)+1
C2=MOD(C1+INT(RAND()*9),10)+1
C2下拉到C10
A1=INDEX($B$1:$B$10,C1)
A1下拉到A10
以下,对上面的算法再作更进一步的改进,这样还可省去辅助列C:
A1=INDEX($B$1:$B$10,INT(RAND()*10)+1)
A2=INDEX($B$1:$B$10,MOD(MATCH(A1,$B$1:$B$10,0)+INT(RAND()*9),10)+1)
A2下拉到A10